bash – 如何在短路表达式中检索命令的返回码

表达后:

command1 | command2

我可以通过${PIPESTATUS [0]}检索第一个命令退出状态

表单中是否有等效表达式:

command3 && command4 || command5

我想检索command3的exitcode:

command3 && command4 || command5
retval=${SHORTCIRCUIT[0]}     # how to get this value?

最好不要创建临时文件.

最佳答案 详细说明devnull的方法导致

{ c3=0; command3 || c3=$? && false; } && command4 || command5
echo $c3

.
因为每个命令都可以替换

{ c=0; command || c=$? && false; }

(如果有条件地执行c最初未设置),这很容易扩展.

点赞