我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
Run Code Online (Sandbox Code Playgroud)
您检查$-变量是否包含e
if [[ $- == *e* ]]
Run Code Online (Sandbox Code Playgroud)
请参阅手册中的特殊参数。
对于 POSIX shell,case是模式匹配的内置工具
if [[ $- == *e* ]]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
407 次 |
| 最近记录: |