我嘗試用發球在保存文件的輸出,如:如何使用T恤檢查出口?
myapp | tee log.txt
但我有一個退出的檢查的問題。以前的代碼:
myapp
if [ $? -eq 0 ]
then .....
但是$?將開球的退出!有沒有可能趕上myapp的退出? 謝謝。
我嘗試用發球在保存文件的輸出,如:如何使用T恤檢查出口?
myapp | tee log.txt
但我有一個退出的檢查的問題。以前的代碼:
myapp
if [ $? -eq 0 ]
then .....
但是$?將開球的退出!有沒有可能趕上myapp的退出? 謝謝。
對於bash,有一個方便的特殊的數組:PIPESTATUS。 myapp
的返回碼將位於$ {PIPESTATUS [0]}中,依此類推。
zsh有一個大致相同的方法。
還有一種更加煩人的,笨拙的方法來做到這一點,在嚴格的Bourne shell中,你可以在the comp.unix.shell FAQ閱讀。
你可以重定向你的輸出,而不是文件:
$ myapp > log.txt
myapp | tee log.txt
if [ $PIPESTATUS[0] -eq 0 ]
then .....
+1。閱讀[高級Bash腳本指南]中的PIPESTATUS(http://tldp.org/LDP/abs/html/internalvariables.html)。 – 2012-02-23 10:37:53