tail -n 3 -f /tmp/file0.txt | grep --line-buffered '.*' | while read LINE0
do
echo "${LINE0}";
done
No Bash, o piping tail -f
para um loop read
é bloqueado indefinidamente.
while read LINE0
do
echo "${LINE0}";
done < <( tail -n 3 -f /tmp/file0.txt | grep '.*' )
# hangs
Remova o -f
ou | grep '.*'
e, em seguida, o loop iterará.
O seguinte não não é interrompido.
tail -n 3 -f /tmp/file0.txt | grep '.*'
O que causa esse comportamento?
Existe alguma maneira no Bash para seguir um arquivo e ler em uma expressão de pipe?