bash 4.1.2 版本增加了map数据结构。map是一种常用的数据结构,通过map可以将key映射到一个value。

使用方法
map在使用之前需要先声明,声明的方式如下
declare -A map_name
map需要先声明再使用。参数-A表示声明的变量是一个map。需要注意的是这里的A是大写的字母A。
赋值操作
map的赋值有两种方式,一种是直接给map赋值,如下:
map_name=(["foo"]="bar" ["hello"]="world")
另一种是使用下标给map添加key-value对
map_name["foo"]="bar"
map_name["hello"]="world"
输出所有的key
echo ${!map_name[@]}
在文中最开始提到map的使用需要先声明,在没有声明的情况下此处会输出一个0,如下图:

输出所有value
echo ${map_name[@]}
输出map长度
echo ${#map_name[@]}
遍历,根据key找到对应的value
for key in ${!map_name[*]};do
echo ${map_name[$key]}
done
遍历所有的key
for key in ${!map_name[@]};do
echo $key
done
遍历所有的value
for val in ${map_name[@]};do
echo $val
done
问题FAQ
Q:为什么提示 declare: -A: invalid option
A:bash 4.1.2版本之后才提供map数据结构,你的bash版本可能较低,升级即可。
赞赏微信赞赏
支付宝赞赏