|
From: | Julio C. Neves |
Subject: | Re: [shell-script] Comportamento estranho do array no for |
Date: | Thu, 1 Feb 2018 17:00:12 -0200 |
Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo Cadunico
Boa tarde MestresEstou fazendo uma linha de comando para comparar o usuário de login do ftp com o diretório do usuário cadastrado, para isso estou analisando os arquivos "messages" e "password". Só que me deparei com um comportamento que não consegui compreender e peço para entender o que esta ocorrendo.O caso é é que um dos resultados acaba sendo duplicado no fim do comando.Abaixo esta a síntese que vou tentar explicar e também no pastebin, tem o exemplo do arquivo messages, outros comandos que tentei e o exemplo com o comando "echo".log messageresultado repetidoresultado sem repetiçãoComando completo:for i in $(grep "OK LOGIN" messages |awk 'gsub (/[\[\]]/,"",$13) {print $13}'|sort -u);do awk -F: /"$i"/'{print $1"==="$6}' /etc/passwd ;done1=Primeiro pego o usuário que logou com o "grep", depois limpo a sujeira com o "awk" e deixo um registro apenas com o "sort":grep "OK LOGIN" messages |awk 'gsub (/[\[\]]/,"",$13) {print $13}'|sort -u2=Segundo transformo o resultado num array pra usar no loop "for":for i in $(grep "OK LOGIN" messages |awk 'gsub (/[\[\]]/,"",$13) {print $13}'|sort -u);do3=Terceiro com o loop do for faço a comparação de cada item do array com o arquivo "passwd":awk -F: /"$i"/'{print $1"==="$6}' /etc/passwd ;doneÉ nesse ponto que acontece a repetição do resultado que não consegui entender.Se trocar essa parte do código por um "grep" (grep $i ) também tenho o resultado duplicado, isso só não acontece quando uso o "echo" ( echo $i ).4=O resultado:dba<==>/srv/ftp/dbadvgp<==>/srv/ftp/dvgpdvgp_visita<==>/srv/ftp/dvgpgpsveicular<==>/srv/ftp/dvgp/atualiza-gps-veicular/ dvod<==>/srv/ftp/dvodgpsveicular<==>/srv/ftp/dvgp/atualiza-gps-veicular/ Desde já agradeço e obrigado.Atenciosamente
Marlon V. Reck
address@hidden
[Prev in Thread] | Current Thread | [Next in Thread] |