首页 > 解决方案 > 如何检测启用的 shell 选项

问题描述

set允许通过启用某些功能来调整 shell 执行。一些最受欢迎的是:

set -e   # exit on error
set -x   # print executed commands

脚本中有没有办法检测当前启用的功能?

在我的特殊情况下,我想知道是否set -x调用了。

标签: linuxbashshell

解决方案


使用变量_$-

$ echo $-
himBCHs

$ set -e
$ set -x

$ echo $-
ehimxBCHs
^   ^

所以:

if [[ $- == *x* ]]; then
    echo "xtrace is set"
fi

推荐阅读