You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查看当前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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:22:40