升级Mountain Lion的bash到4.2版本

升级Mountain Lion的bash到4.2版本

Mountain Line自带的Bash是3.2.58版本,这个版本不支持关联数组的定义。

而我以前写的脚本中,大量使用了关联数组。因此,我需要将Bash升级到4.2版本。

安装GCC

如果GCC编译器没有安装,那么需要去Apple Developer 下载Command Line Tools。我下载的是 Command Line Tools(OSX Mountain Lion) for Xcode,文件大小为118MB。

下载bash源码

1curl https://ftp.gnu.org/gnu/bash/bash-4.2.tar.gz -o ~/Downloads/bash42.gz
2tar xzf ~/Downloads/bash42.gz

编译和安装

1cd ~/Downloads/bashr42
2./configure && make && sudo make install

使用新的bash

新安装的bash在/usr/local/bin/bash,与旧的bash并不冲突,需要设置当前用户使用它。

1chsh -s /usr/local/bin/bash {user_name}
2sudo bash -c "echo /usr/local/bin/bash >> /private/etc/shells"

关闭终端并重新打开,输入bash -versionhelp。查看bash安装情况。

替换旧的bash

1sudo mv /bin/bash /bin/bash3.2.58
2sudo ln -s /usr/local/bin/bash /bin/bash

参考文章