Parece que você está tentando redirecionar a saída de home/dir/file.txt | awk '{print $2}'
para o while
loop;
primeiro, acho que o caminho correto deve ser /home/dir/file.txt
(no entanto, isso é apenas uma suposição);
segundo /home/dir/file.txt | awk '{print $2}'
não redireciona o conteúdo de /home/dir/file.txt
para awk
, enquanto < /home/dir/file.txt awk '{print $2}'
faz;
terceiro, você está redirecionando a saída do comando como um arquivo, mas é uma string, e você deve redirecioná-la da seguinte forma: <<< "$(< /home/dir/file.txt awk '{print $2}')"
.
Além disso, você pode enviar a saída do comando diretamente para o loop while
: < /home/dir/file.txt awk '{print $2}' | while read num
.
while read num
do
if [ "$num" = "0" ]; then
echo "Number is equal to zero"
else
echo "number is not equal to 0"
fi
done <<< "$(< /home/dir/file.txt awk '{print $2}')"
ou
< /home/dir/file.txt awk '{print $2}' | while read num
do
if [ "$num" = "0" ]; then
echo "Number is equal to zero"
else
echo "number is not equal to 0"
fi
done