退出bash时如何设置退出代码?

时间:2019-09-20 02:00:36

标签: bash pipestatus

我想从子bash运行命令,并且需要它的返回代码;实际上,它正在运行管道,并且我需要PIPESTATUS数组或至少一个组件。

这是我的最佳猜测,它不起作用。我刚得到一个0。由于bash不会出错,所以很有意义,这不是我所需要的。帮助吗?

bash -c "echo 123 | grep abc | sort; exit ${PIPESTATUS[1]}"; echo $?
0

1 个答案:

答案 0 :(得分:1)

尝试使用单引号:

bash -c 'echo 123 | grep abc | sort; exit ${PIPESTATUS[1]}'; echo $?

示例运行:

bash -c 'echo 123 | grep abc | sort; exit ${PIPESTATUS[1]}'; echo $?
1

bash -c 'echo 123 | grep abc | sort; echo status is ${PIPESTATUS[@]}'; echo $?
status is 0 1 0
0

与此相关的post