在 mac 上升级 bash

Posted

技术标签:

【中文标题】在 mac 上升级 bash【英文标题】:Upgrading bash on mac 【发布时间】:2020-03-13 15:42:14 【问题描述】:

我尝试在我的 Macbook Pro (Mojave OS) 上升级我的 bash 版本。为此,我运行了:

brew install bash
sudo nano /etc/shells # And then added the new bash shell to the bottom of the list. 
chsh -s /usr/local/Cellar/bash/5.0.11/bin/bash

这样做之后,bash -version 仍然返回版本 3,但 echo $BASH_VERSION 打印版本 5。如果我尝试创建一个关联数组(我认为这在 3 中不存在),它可以工作,所以我假设我是使用新的外壳。为什么我的 bash 版本没有更新?

【问题讨论】:

是否有可能您正在运行新的 bash,但命令 bash 仍然指向原来的? which bash 带给你什么? 哪个 bash 只给了我原始的 shell。好像找不到其他的? 【参考方案1】:

brewbash 可执行文件添加到/usr/local/bin/ 目录。

我认为这应该可行:

brew install bash
sudo nano /etc/shells # And then add /usr/local/bin/bash to the bottom of the list. 
chsh -s /usr/local/bin/bash

【讨论】:

【参考方案2】:

尽管您正在运行更新版本的 bash,但命令 bash(没有完整路径)仍指向原始捆绑版本:/usr/bin/bash

假设您确实需要以这种形式调用命令,那么您应该检查 $PATH 中的位置顺序,并确保带有新 bash 命令的 bin/ 文件夹在 $PATH 列表中在/usr/bin 之前。如果做不到这一点,请在 shell 中创建一个指向新 bash 的别名。

【讨论】:

以上是关于在 mac 上升级 bash的主要内容,如果未能解决你的问题,请参考以下文章

在 mac 上升级 PHP CLI 版本

如何在CentOS 6.5上升级PHP版本

无法在 Mac Lion 上升级 Maven - 环境变量

如何在CentOS 6.5上升级PHP版本

在 MacOS 上升级 NGINX 版本

最简单的方式在linux上升级node.js版本