shell別のshellの実行結果を取得

560 ワード

shellループを使用して1~5を印刷し、1秒間隔で出力します(loop.sh):
#!/bin/sh
for i in {1..5}
do 
    echo $i
    sleep 1
done

プログラム出力:
1
2
3
4
5

別のshellを使用して出力を連続的に読み取り、いくつかの処理を行うとしますか?
./loop.sh | while read file; 
do 
   echo == $file; 
done;

この行shellはまず上のloopを実行した.shは、各出力をループして得られ、前に==が加算され、実行結果は:
== 1
== 2
== 3
== 4
== 5

注意しなければならないのは、このshellはpoolに従って一度に完成したわけではありません.shタイミングの出力、while read file構文は対応することができます
出力をキャプチャして処理し、実際には出力を判断し、他のshellスクリプトを実行することができます.