升级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 -version
或 help
。查看bash安装情况。
替换旧的bash
1sudo mv /bin/bash /bin/bash3.2.58
2sudo ln -s /usr/local/bin/bash /bin/bash
参考文章
- http://techscienceinterest.blogspot.com/2010/05/change-to-new-bash-shell-41-for-mac-os.html
- http://concisionandconcinnity.blogspot.com/2009/03/upgrade-bash-to-40-in-mac-os-x.html
- https://github.com/kennethreitz/osx-gcc-installer/
- 文章ID:1830
- 原文作者:zrong
- 原文链接:https://blog.zengrong.net/post/upggrade_bash_to_42_in_osx/
- 版权声明:本作品采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可,非商业转载请注明出处(原文作者,原文链接),商业转载请联系作者获得授权。