概述
Mac 自带的 bash shell 版本为 3.2,2007 年的版本了,原因是 bash 3.2 的授权为 GPLv2,3.2 的下一版本为 4.0,使用 GNU General Public License v3 (GPLv3)授权,苹果不想使用这个授权的 bash,所以一直没升级。
bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin19)
Copyright (C) 2007 Free Software Foundation, Inc.
目前 GNU Bash 的最新版为 5.x 参考(http://ftp.gnu.org/gnu/bash/)。
为什么我会想升级 bash 呢?因为我需要 4.x 以上的版本才可以使用 vscode 的bash debug 插件。对于一些复杂的 bash 脚本,我有 debug 的需求(如何 debug bash 脚本,可以查看我这篇文章使用 vscode 调试 bash 脚本)。
下面介绍如何升级 Mac 的 bash 版本。
安装新版 bash
使用brew
安装
brew install bash
查看安装的 bash
$ which -a bash
/bin/bash
/usr/local/bin/bash
安装的新版 bash 在/usr/local/bin/
下面,而系统自带的 bash 在/bin
下面,所以如果想使用新版的 bash,必须保证在PATH
中/usr/local/bin
排在 /bin
的前面。
调整完成后再次使用which
查看,/usr/local/bin
排在前面即可。
which -a bash
/usr/local/bin/bash
/bin/bash
设置为默认 shell (可选)
首先需要把新版 bash 路径添加到/etc/shells
中,作为系统信任的 shell,即login shell
(登录到系统时所使用的 shell)。
在/etc/shells
最后加上/usr/local/bin/bash
/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/bash
然后执行chsh
设置默认 shell
sudo chsh -s /usr/local/bin/bash
注意事项
写 bash 脚本的时候,如以下test.sh
, 第一行默认写法是#!/bin/bash
,显现设置了使用/bin/bash
执行脚本。
#!/bin/bash
echo $BASH_VERSION
使用不同的执行方式会有不同的结果
$ bash test.sh
5.0.18(1)-release
$ ./test.sh
3.2.57(1)-release
如果想确保使用新版 bash 执行可以将脚本第一行改为#!/usr/local/bin/bash
。
最新评论
test
您好 请问您是怎么解决这个问题的
问题解决了,谢谢!
我在运行./solc-select/scripts/install.sh的时候出现下面的问题, Installing solc versions into /home/zxy/.solc-select
您好,我按您的步骤从linux系统上做了好几遍,每次做完都是输入which solc有显示,但是输入solc--version没有任何显示,请问可以加您个联系方式吗,我想把我做的的截图给您看一下,您看
我知道了 直接在Ubuntu的设置中配置就好了
想问一下,这样设置了以后,浏览器还是无法翻墙,该怎么操作呢?
直接安装编译好的驱动,需要安装哪些依赖呢?