4

一个表达式之后:

command1 | command2

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

形式中的表达式是否有等价物:

command3 && command4 || command5

我想检索 command3 的退出代码:

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

最好不要创建临时文件。

4

1 回答 1

2

详细阐述 devnull 的方法导致

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

. 因为每个command都可以替换为

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

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

于 2013-09-17T07:40:34.303 回答