参考:njun041640.blog.163.com/blog/static/2562683220139272118744/
[root@linkea-dev-srv1 ~]# declare -A abc -bash: declare: -A: invalid option declare: usage: declare [-afFirtx] [-p] [name[=value] ...]
bash 的版本必须 >= 4.1.2,升级bash:
# wget http://ftp.gnu.org/gnu/bash/bash-4.2.tar.gz
# tar -zxvf bash-4.2.tar.gz
# cd bash-4.2
# ./configure
# make && make install
# mv /bin/bash /bin/bash.old
# ln -s /usr/local/bin/bash /bin/bash
# 重新登录
# sh -version
# GNU bash, 版本 4.2.0(2)-release (x86_64-unknown-linux-gnu)
declare -A 变量名 #切记使用大写的A,不是小写的a
[root@www ~]# declare -A map=(["sunjun"]="a" ["jason"]="b" ["lee"]="c") #定义时初始化一些值 [root@www ~]# echo ${map[@]} #输出所有values a c b [root@www ~]# echo ${!map[@]} #输出所有keys sunjun lee jason
[root@www ~]# map["hello"]=123 #向map中添加一个key=value [root@www ~]# echo ${map[@]} a c b 123 [root@www ~]# echo ${!map[@]} sunjun lee jason hello [root@www ~]#
[root@www ~]# declare -a array=("aa" "bb" "cc") #定义一个数组 [root@www ~]# echo ${array[@]} #输出所有元素的值 aa bb cc [root@www ~]# echo ${!array[@]} #输出所有元素的索引 0 1 2
[root@www ~]# array[100]="hello" #指定索引添加一个元素 [root@www ~]# echo ${array[@]} aa bb cc hello [root@www ~]# echo ${!array[@]} 0 1 2 100 [root@www ~]#