我set -e
经常在脚本中使用,但有时,脚本在某些命令中失败是可以的。
我尝试检查是否set -e
打开,但找不到方法 - 没有选项(我知道)set
可以提供当前值。
也尝试过这样的:set | grep errexit
(errexit
是选项名称-e
)和set | grep "-e"
,没有运气。
我想检查是否errexit
设置了该选项,以便我可以在我随着时间的推移构建的一些库函数中暂时禁用它(如果需要,可以使用set +e
和重新应用set -e
)。就像是:
if [ errexit is set ]; then
ERR_EXIT=1
set +e
fi
...
run some code that may fail
...
if [ "${ERR_EXIT}" = 1 ]; then
set -e
fi
您检查$-
变量是否包含e
if [[ $- == *e* ]]
请参阅手册中的特殊参数。
对于 POSIX shell,case
是模式匹配的内置工具
case $- in
*e*) doSomething ;;
esac
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句