MacOS系统VSCode默认Shell路径配置错误报错如何修复
问题根因
VSCode启动阶段解析shell环境的逻辑,不会读取settings.json里配置的terminal.integrated.profiles.osx自定义终端路径,它默认读取系统账户数据库中记录的当前用户默认登录shell路径。
你当前系统记录的默认shell路径是旧版Intel架构Mac下Homebrew的bash安装路径/usr/local/bin/bash,但Apple Silicon芯片Mac的Homebrew bash实际安装路径为/opt/homebrew/bin/bash,路径不存在就会触发spawn /usr/local/bin/bash ENOENT报错。
另外你在集成终端中执行echo $SHELL输出旧路径,是因为自定义终端profile仅控制集成终端启动时调用的shell程序,不会改写从系统环境继承来的SHELL变量值。
修复步骤
- 更新系统当前用户的默认登录shell为正确的Homebrew bash路径,在iTerm中执行以下命令,按提示输入当前用户的开机密码即可(输入密码时终端不显示字符为正常现象):
chsh -s /opt/homebrew/bin/bash - 校验合法shell列表,执行
cat /etc/shells查看输出内容,如果不存在/opt/homebrew/bin/bash条目,执行以下命令将新路径追加到合法shell列表中:echo "/opt/homebrew/bin/bash" | sudo tee -a /etc/shells - 完全退出VSCode(右键Dock栏VSCode图标选择「退出」,不要仅关闭窗口),重新启动后启动阶段的shell环境解析报错就会消失。
- (可选)如果需要修正集成终端内
SHELL变量的取值,可以在你的bash配置文件(~/.bashrc或~/.bash_profile)中添加以下配置,保存后执行source对应配置文件即可生效:export SHELL=/opt/homebrew/bin/bash
内容的提问来源于stack exchange,提问作者kingkool68
相关产品推荐
相关产品推荐

