2012-02-23 4 views
4

私は次のようにファイルに出力を保存するためにティーを使用しよう:teeを使用すると終了を確認するにはどうすればいいですか?

myapp | tee log.txt 

しかし、私は、出口のチェックに問題があります。前のコード:

myapp 
if [ $? -eq 0 ] 
then ..... 

しかし、$?ティーの出口になります! myappの出口を捕捉することは可能でしょうか?おかげさまで

答えて

5

をbashのために、便利な特殊な配列があります。 myappの戻りコードは$ {PIPESTATUS [0]}のようになります。

zshにはほぼ同じ方法があります。

the comp.unix.shell FAQで読むことができる厳密なボーンシェルでは、もっと厄介な、ハックな方法があります。

+0

+1。 [Advanced Bash Scripting guide](http://tldp.org/LDP/abs/html/internalvariables.html)の 'PIPESTATUS'を読んでください。 –

-1

あなたの代わりにファイルにあなたの出力をリダイレクトすることができます:PIPESTATUS:

$ myapp > log.txt 
4

使用PIPESTATUS

myapp | tee log.txt 
if [ $PIPESTATUS[0] -eq 0 ] 
then ..... 
関連する問題