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