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