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

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

cat foo
51
33
67

cat bar
10
1
13

cat baz
7
100
15

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

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

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

paste -d+ foo bar baz|bc 

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

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

0
27.05.2017, 18:30
1 ответ

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

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

Теги

Похожие вопросы