在bash脚本/ shell中,是否有一种编程方式来确定set -e
标志是否处于活动状态?
我只需要一个布尔值让我知道它是否打开/关闭。
答案 0 :(得分:4)
来自help test
:
-o OPTION True if the shell option OPTION is enabled.
...
[ -o errexit ]
答案 1 :(得分:2)
您可以查看$-
变量,了解是否启用了 e 选项:
[[ $- =~ e ]]
来自help set
:
The current set of flags may be found in $-.
答案 2 :(得分:2)
您还可以使用shopt
的退出代码:
if shopt -qo errexit; then
echo enabled
# do something
fi
答案 3 :(得分:1)
$ set -e
$ if grep -q 'errexit' <<<"$SHELLOPTS";then echo "set -e is enabled";else echo "set -e is disabled";fi
set -e is enabled
$ set +e
$ if grep -q 'errexit' <<<"$SHELLOPTS";then echo "set -e is enabled";else echo "set -e is disabled";fi
set -e is disabled