升级 Mac 的 bash

in 技术 with 0 comment

MacOS 11.12 自带的 bash 是 3.4 版本的,下午给 Visual Studio Code 装了一个 Bash Debug 插件,插件要求的 bash 版本是 4.0+,就升级了一下 bash,而且 4.0 支持了一些新特性。

bash 4.0 新增支持了关联数组(associative arrays),改进了可编程完成函数(completion functionality),case-modifying 单词扩充,复合进程,增加 shell 句法和重定向。 shell 在分析内部命令替换上变得更严格,修正了 POSIX 虚拟接口的不兼容块。

使用 homebrew 安装 bash

最便捷的方式就是使用 brew 了,会默认安装 bash 的最新版本。

brew install bash
==> Installing dependencies for bash: readline
==> Installing bash dependency: readline
==> Downloading https://homebrew.bintray.com/bottles/readline-6.3.8.yosemite.bottle.tar.gz
……

替换系统自带 bash

sudo mv /bin/bash /bin/bash.old
sudo ln -s /usr/local/opt/bash/bin/bash /bin/bash

使用以上命令发现没有操作权限,因为 MacOS 引入了 SIP(System Integrity Protection) 安全机制,导致软件层无法操作系统底层目录和文件,需要先关闭 SIP。

关闭 SIP 的操作步骤如下:

  1. 重启系统,按住Command+R进入恢复模式
  2. 进入恢复模式后,打开「实用工具」菜单中的终端
  3. 在 Terminal 中输入csrutil disable关闭 SIP (csrutil enable为打开)
  4. 重启系统

重启后重新执行:

sudo mv /bin/bash /bin/bash.old
sudo ln -s /usr/local/opt/bash/bin/bash /bin/bash

大功告成,输入bash -version查看系统 bash 版本是否正确被替换:

☁  ~  /bin/bash -version
GNU bash,版本 4.4.23(1)-release (x86_64-apple-darwin16.7.0)
Copyright (C) 2016 Free Software Foundation, Inc.
许可证 GPLv3+: GNU GPL 许可证第三版或者更新版本 <http://gnu.org/licenses/gpl.html>

本软件是自由软件,您可以自由地更改和重新发布。
在法律许可的情况下特此明示,本软件不提供任何担保。
Responses
选择表情选择表情