如何设置bash启动时默认退出码为0,避免VS Code弹出告警
MSYS2 bash启动初始退出码为1的修复方案
问题根因
bash启动时会按顺序执行 /etc/profile、~/.bash_profile、~/.bashrc 等初始化脚本,只要最后一个执行完成的命令返回值为1,新启动的shell初始$?就会是1,此时直接执行exit就会携带该退出码,触发VS Code的告警。
快速兜底修复
如果不需要定位具体是哪条初始化命令出错,可以直接在用户bash配置末尾加固定返回0的命令,操作步骤如下:
- 打开MSYS2的bash窗口,执行
nano ~/.bashrc编辑用户配置文件 - 翻到文件的最后一行,新增内容:
true - 按
Ctrl+O保存,按Ctrl+X退出编辑器 - 重启bash即可生效,此时初始
$?为0,直接exit也会返回0
定位具体错误的方法
如果想排查具体是哪条初始化命令导致的问题,可以按以下步骤操作:
- 启动MSYS2 bash后执行命令:
bash -x -l -i -c exit 2>&1 | tail -20 - 查看输出中最后几条带
+前缀的命令,对应执行的最后几条初始化指令,找到返回值非0的指令进行修复即可
额外检查项
- 排查VS Code终端配置中MSYS2的启动参数,有没有添加错误的执行命令
- 检查是否安装了会修改bash初始化的第三方工具,比如自动注入的环境变量管理工具等
内容的提问来源于stack exchange,提问作者Baruch
相关产品推荐
相关产品推荐

