在 中bash
,已知set -e
在命令替换中被忽略(除非inherit_errexit
被启用)。
但是,在false
命令替换中执行命令时,set -e
不会被忽略。为什么?
代码:
set -e
shopt | grep inherit_errexit
echo hello
a=$(false)
echo world
预期的:
inherit_errexit off
hello
world
实际的:
inherit_errexit off
hello
shell returned 1