我尝试使用tee将输出保存在文件中,如:
myapp | tee log.txt
但我检查退出时遇到问题。上一个代码:
myapp
if [ $? -eq 0 ]
then .....
但是$?将退出发球台!有可能赶上myapp的退出吗? 感谢。
答案 0 :(得分:5)
对于bash,有一个方便的特殊数组:PIPESTATUS。 myapp
的返回码将在$ {PIPESTATUS [0]}中,依此类推。
zsh的方法大致相同。
在the comp.unix.shell FAQ中你可以阅读的严格的bourne shell中还有一种比较烦人的hacky方法。
答案 1 :(得分:4)
myapp | tee log.txt
if [ $PIPESTATUS[0] -eq 0 ]
then .....
答案 2 :(得分:-1)
您可以将输出重定向到文件:
$ myapp > log.txt