为什么标记变量readonly掩盖了bash中的退出状态?

时间:2014-06-17 12:01:35

标签: bash

我对此输出感到困惑:

$ readonly foo=`exit 1`
$ echo $?
0
$ bar=`exit 1`
$ echo $?
1

为什么readonly会有所作为?

1 个答案:

答案 0 :(得分:5)

readonly是函数调用,在exit 1子shell完成后输入。

您的脚本现在返回readonly的返回值。

保留返回码语义的单行可以是

foo=`exit 1` ; RC=$? ; readonly foo ; `exit $RC`