阿男的小窝

View the Project on GitHub

更新macos的bash版本

在使用sdkman安装java的时候,升级sdkman时遇到下面问题:

如上所示,执行sdkman update的时候,说我的bash版本太旧。我们可以用homebrew提供的bash

$ brew install bash

安装完成后状态如下:

安装完成后,使用iterm2打开一个新的终端,查看bash版本:

$ which bash
/usr/local/bin/bash
$ bash -version
GNU bash, version 5.0.3(1)-release (x86_64-apple-darwin18.2.0)
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

可以看到上面通过homebrew安装的bash版本为5.0.3,高于sdkman所需的4.x。接下来当前的bash版本:

$ echo $BASH_VERSION
3.2.57(1)-release

可以看到终端正在运行的当前bash版本仍然是3.2.57。上面的命令的完整运行情况如下:

可以看到正在运行的bash版本仍然不是homebrew提供的最新版本,这是为什么呢?这是因为终端的默认配置的bash在起作用。我们需要配置使用/usr/local/bin/bash为默认的shell,配置命令如下:

$ chsh -s /usr/local/bin/bash

上面的命令需要管理员密码生效:

此时默认的shell已经被变更。此时打开一个新的终端,查看BASH_VERSION

可以看到已经使用homebrew5.0.3版本了。