如何查看当前shell/sh/bash的set -e/+e状态?
如何查看当前shell的
set -e/set +e状态 嘿,这个问题确实挺实用的,我给你分享几个简单可靠的方法,不管你用的是bash、sh还是其他常见shell都能用:
方法一:用
set -o查看选项状态
这个方法最直观,set -o会以「选项名 + 状态(on/off)」的格式列出所有shell选项。直接执行:set -o | grep errexit输出如果是
errexit on,就说明set -e已开启;如果是errexit off,就表示set +e(关闭状态)生效。方法二:通过
$-变量判断
shell内置变量$-存储了当前启用的单字母选项标记。如果其中包含字符e,就代表set -e是开启的。你可以直接打印这个变量看:echo "$-"也可以用一行命令直接输出状态:
[[ "$-" == *e* ]] && echo "set -e 已开启" || echo "set -e 已关闭"方法三:直接用
set命令过滤结果
不带参数的set命令会输出所有shell变量和选项状态,你可以用grep过滤出e相关的选项:set | grep -E '^-[^ ]*e|errexit'输出里如果是
-e开头的选项行,或者明确显示errexit的状态,就能判断当前的set -e状态。
这些方法在bash、sh、zsh等主流shell里都能正常工作,不管是在交互式shell还是脚本里都适用哦。
内容的提问来源于stack exchange,提问作者Nam G VU
相关产品推荐
相关产品推荐

