Quando você precisa de "...|enquanto lê..."?

Quando você precisa de "...|enquanto lê..."?

Eu vi um vídeo tutorial para o comando colar, no qual três arquivos foo,bar,baz foram conectados horizontalmente com um sinal “+” entre eles.

cat foo
51
33
67

cat bar
10
1
13

cat baz
7
100
15

Então, ele usou um comando paste para transformar cada linha em uma adição completa e canalizou isso para um loop while que itera através de cada linha e a coloca na calculadora bc:

paste -d+ foo bar baz | while read bla;do echo $bla|bc;done

Fiquei confuso por que ele usou o loop while complicado desde

paste -d+ foo bar baz|bc 

funcionou também,

no entanto, isso me fez pensar"Existem situações em que entrar no loop while faz sentido ou é mesmo a única maneira de conseguir alguma coisa?"

Responder1

Neste caso foi apenas para mostrar o que está progredindo no momento, e linha por linha. Piping while loops às vezes é realmente útil, por exemplo, exibindo uma barra de progresso. Exemplo de barra de progresso:

for i in $(seq 1 100)
do
sleep 0.1 
echo $i
done | whiptail --title 'Test script' --gauge 'Running...' 6 60 0

informação relacionada