Eu estava tentando ler um arquivo linha por linha (cada linha é um nome de host), fazer algum processamento como este:
while read -r line
do
if ping -c1 $line
echo $line is running
fi
done <file.txt
Eu descobri que a saída é assim:
is running
is running
...
Como se a variável $line
estivesse vazia.
Obrigado a todos que comentaram esta questão. Acho que agora entendo o que aconteceu.
Assim, o arquivo termina com a linha CRLF. E o comprimento de uma linha é exatamente o mesmo que is running
.
Por causa do caractere CR no final de $line
, o conteúdo de $line
é totalmente substituído por is running
. Se apenas o comprimento de uma linha for maior, eu teria feito a pergunta de maneira diferente.
Tags bash