Я видел видеоурок по команде вставки, в котором три файла 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