我有两个进程foo
和bar
,用管道连接:
$ foo | bar
Run Code Online (Sandbox Code Playgroud)
bar
总是退出 0;我对foo
. 有什么办法可以得到吗?
考虑源代码:
1. 父.sh
#!/usr/bin/ksh
# No tee
ksh Child.sh;
exit_status=$?;
echo "Exit status: ${exit_status}"
# Using tee
ksh Child.sh | tee -a log.txt;
exit_status=$?;
echo "Exit status: ${exit_status}"
Run Code Online (Sandbox Code Playgroud)
2. 子.sh
#!/usr/bin/ksh
...
exit 1;
Run Code Online (Sandbox Code Playgroud)
输出:
Exit status: 1
Exit status: 0
Run Code Online (Sandbox Code Playgroud)
$exit_status
正在捕获 Child.sh 的退出状态,1
.$exit_status
正在捕获 tee 的退出状态,即0
.那么如何捕获退出状态并使用 tee 呢?