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

How set an exit code when exiting bash?

我想 运行 来自子 bash 的命令,我需要它的 return 代码;实际上它是 运行 管道,我需要 PIPESTATUS 数组,或至少一个组件。

这是我最好的猜测,但没有用。我只得到一个 0。由于 bash 没有错误,所以这是有道理的,这不是我需要的。帮忙?

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

尝试使用单引号:

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