Когда вам нужно «...|во время чтения...»?

Когда вам нужно «...|во время чтения...»?

Я видел видеоурок по команде вставки, в котором три файла foo,bar,baz были соединены горизонтально знаком «+» между ними.

cat foo
51
33
67

cat bar
10
1
13

cat baz
7
100
15

Поэтому он использовал команду вставки, чтобы сделать каждую строку целым сложением, и поместил это в цикл while, который проходит по каждой строке и помещает ее в калькулятор bc:

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

Я был в замешательстве, почему он использовал сложный цикл while, поскольку

paste -d+ foo bar baz|bc 

работал также,

однако это заставило меня задуматься«Есть ли ситуации, в которых использование цикла while имеет смысл или является единственным способом чего-либо добиться?»

решение1

В этом случае это было просто для вывода того, что прогрессирует в данный момент, и эта строка за строкой. Конвейеризация циклов while иногда действительно полезна, например, для отображения полосы прогресса. Пример полосы прогресса:

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

Связанный контент