如果使用三通,如何检查退出?

时间:2012-02-23 10:26:12

标签: linux bash command exit

我尝试使用tee将输出保存在文件中,如:

myapp | tee log.txt

但我检查退出时遇到问题。上一个代码:

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

但是$?将退出发球台!有可能赶上myapp的退出吗? 感谢。

3 个答案:

答案 0 :(得分:5)

对于bash,有一个方便的特殊数组:PIPESTATUS。 myapp的返回码将在$ {PIPESTATUS [0]}中,依此类推。

zsh的方法大致相同。

the comp.unix.shell FAQ中你可以阅读的严格的bourne shell中还有一种比较烦人的hacky方法。

答案 1 :(得分:4)

使用PIPESTATUS

myapp | tee log.txt
if [ $PIPESTATUS[0] -eq 0 ] 
then .....

答案 2 :(得分:-1)

您可以将输出重定向到文件:

$ myapp > log.txt