私は、貼り付けコマンドのビデオ チュートリアルを見ました。その中で、3 つのファイル 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ループを使ったのか不思議でした。
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