> (parametros: $1=filtro_da_busca, $2=usuario_mysql, $3=senha_mysql) deixa eu ver se entendi direito?
> #!/bin/bash > (smbstatus -p) |grep $1 | tr -s " " > smbstatus2.txt pega os processos do smbstatus que casem com $1, e "limpa" os espaços em branco duplicados (tr -s " ") e grava no smbstatus2.txt > linha=$(wc -l smbstatus2.txt | cut -f 1 -d' ') / pega o numero de linhas do arquivo smbstatus2.txt > litemp=$linha > for i in $(seq 1 $litemp) > do > ! nome=$(cut -f 3 -d' ' smbstatus2.txt | uniq -w 1 ) > ! maq=$(cut -f 5 -d' ' smbstatus2.txt | uniq -w 1 ) > ! ip=$(cut -f 6 -d' ' smbstatus2.txt | uniq -w 1) seta nome, máquina e ip com o valor correspondente salvo em smbstatus2.txt > mysql -u $2 -p$3 -D banco -e"select nome from usuarios where id='$nome'" > >testmy.txt busca o nome do usuário dentro da base de dados e salva no arquivo testmy.txt > tail -n1 testmy.txt > testmy2.txt ué? pode haver mais de um nome? como saber que é o correto? > mv testmy2.txt testmy.txt Limpa o temporario usado para escolher o nome correto > int=$(cut -f 10 testmy.txt) Não entendi. Porque precisa "cortar" o nome do usuario? padronizar a saida? > echo -n "$ip $nome $int " Mostra a saida com o ip, o nome e o $int, que até agora não sei de onde saiu, nem pra que serve. :( > litemp=$(($litemp-1)) Decrescenta a litemp. Daqui pra frente não entendi mais nada pq estas linhas. > tail -n$litemp smbstatus2.txt > tempsmb.txt > mv tempsmb.txt smbstatus2.txt > done mas algumas sugestões - (aka 2 cents) : 1 - eu vi que vc deu um uniq -w 1. Eu usaria um "sort" encadeado ANTES do uniq. (ainda não consegui entender pra que necessidade real funciona o script) 2 - eu não usaria e abusaria do cut como vc usou/abusou. Eu usaria o awk. algo como <code> echo maria joao cristina | awk '{ print $3}' </code> retornaria "cristina", independente de haver ou não 200 espaços e tabulações entre joao e cristina. 3 - achei interessante o tr -s " ", nunca havia pensado nesse uso para o tr. Mas simplesmente devido ao item (2), dificilmente tenho esses problemas com espaços... Mas em caso de desespero, uso o sed "s/\s+/ /g" ou o perl -pe "s/\s+/ /g" ... 4 - vi que você abusa de resultados salvos em arquivos com nomes pre-definidos. Ou você começa a randomizar os nomes dos seus arquivos temporarios - como por exemplo explorando o uso de "$$" no nome do arquivo (o $$ pega o pid do processo que o script está rodando) ou reza para que nenhum usuário engraçadinho linke por exemplo o /etc/passwd em algum tempsmb.txt perdido pelo caminho... Ou ainda, comece a salvar os resultados em variáveis apenas. Fica bonito, eu garanto!!! rs 5 - o meu smbstatus -p retorna um monte de mensagens "subliminares" das minhas seções do smb.conf. Eu experimentei (smbstatus -p) 2>&1 e ficou bem limpa a saida. 6 - Já experimentou fazer em perl ? ficaria mais legal... mas tbm não sei pra que queres isso... [ ]s, Henry > .''`. Yours Trully > > : :' : Carlos Beltrame > > `. `'` Eletrical Engineer > `- IEEE #80472763 > Linux User #442225 > UNESP - Câmpus de Ilha Solteira > http://www.ieee.org/unesp-ilha > http://www.ldc.feis.unesp.br _______________________________________________________ Yahoo! Mail - Sempre a melhor opção para você! Experimente já e veja as novidades. http://br.yahoo.com/mailbeta/tudonovo/