相关疑难解决方法(0)

获取通过管道传输到另一个进程的退出状态

我有两个进程foobar,用管道连接:

$ foo | bar
Run Code Online (Sandbox Code Playgroud)

bar总是退出 0;我对foo. 有什么办法可以得到吗?

shell pipe exit

392
推荐指数
11
解决办法
20万
查看次数

如何在 korn shell 中捕获返回状态并同时使用 tee?

考虑源代码:

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 呢?

ksh shell-script

10
推荐指数
1
解决办法
2万
查看次数

标签 统计

exit ×1

ksh ×1

pipe ×1

shell ×1

shell-script ×1