Mac Big Sur安装双Bash版本后终端版本显示冲突问题
问题原因
- 首先macOS的
chsh命令只允许将**/etc/shells文件内收录的路径**设置为用户默认shell,你通过Homebrew安装的Bash 5.x路径/opt/homebrew/bin/bash不在该系统白名单内,所以即使你在GUI设置里选择了该路径,实际也没有生效,终端启动时默认加载的还是系统原生的Bash 3.2版本。 bash --version返回5.x是因为命令会读取$PATH里排序靠前的Homebrew Bash路径,而$BASH_VERSION是当前正在运行的shell的内置变量,返回的是你当前实际用的shell版本,二者指向的不是同一个程序,所以出现了版本冲突的现象。- 弹出的zsh提示是macOS从Catalina版本开始的默认提醒,只要用户当前使用的不是系统预设的zsh,就会触发该提示。
解决步骤
- 先将Homebrew安装的Bash路径加入系统允许的shell白名单,执行命令:
sudo tee -a /etc/shells <<< '/opt/homebrew/bin/bash'
输入你的用户密码确认即可(输入时密码不会显示)。
2. 重新设置默认登录shell:
chsh -s /opt/homebrew/bin/bash
- 修复配置文件加载问题:Mac下Bash作为登录shell启动时,默认读取的是
~/.bash_profile而非~/.profile,你需要把之前写在.profile里的export PATH=/opt/homebrew/bin:$PATH配置挪到~/.bash_profile中,如果该文件不存在则新建即可。 - 完全退出终端应用后重新打开,即可默认加载Bash 5.x版本。
验证方法
重新打开终端后直接执行:
echo $BASH_VERSION
返回值为5.x版本即代表设置成功,zsh的提示也会自动消失。
内容的提问来源于stack exchange,提问作者user16711485
相关产品推荐
相关产品推荐

