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

use*_*818 4 linux bash command exit

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

myapp | tee log.txt
Run Code Online (Sandbox Code Playgroud)

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

myapp 
if [ $? -eq 0 ] 
then .....
Run Code Online (Sandbox Code Playgroud)

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

Nic*_*ght 5

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

zsh有一个大致相同的方法.

comp.unix.shell常见问题中你可以阅读的严格的bourne shell中也有一种更烦人的hacky方式.