Quando você precisa de “… | while read…”?

0

Eu vi um tutorial em vídeo para o comando paste, 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 fazer de cada linha uma adição inteira e inseriu isso em um loop while, que percorre cada linha e a coloca na calculadora bc:

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

Eu estava confuso porque ele usou o complicado laço while desde

paste -d+ foo bar baz|bc 

também funcionou,

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

    
por sharkant 27.05.2017 / 17:30

1 resposta

2

Neste caso, foi apenas para produzir o que está em progresso no momento e essa linha para linha. Os loops de tubagens enquanto às vezes são realmente úteis, e. exibindo uma barra de progresso. Exemplo da 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
    
por 27.05.2017 / 18:01