Mac自带的bash是3.x版本的,很多特性不支持,比如:
declare: -A
因此需要将bash升级到最新版本
# 安装最新版本的bash
brew install bash
安装完后查看bash版本:
bash --version
需要注意的是,新版本的bash安装后的链接文件为: /usr/local/bin/bash
, 之前系统自带的是 /bin/bash
,而我们脚本里一般都会指定 !/bin/bash
,由于MacOS有系统完整性保护机制(System Integrity Protection,SIP),它会阻止所有用户(包括root)修改 /bin 下面目录的内容。所以如果直接执行脚本依然会使用苹果自带的,此时可以直接使用 bash xxx.sh
来制定使用新版本的bash,或者修改脚本文件里的 !/bin/bash
为 #!/usr/local/bin/bash