Shell 关联数组
Shell提供了关联数组,与很多语言的Map相信。
关联数组存储 key-value数据。
1 使用步骤
1)必须严格通过declare -A声明关联数组。
declare -A 数组变量
-a表示普通数组,-A表示关联数组。
2)可以通过( )进行初始化
数组变量=([key1]=value1 [key2]=value2 … [keyn]=valuen)
注意[ ]不能省略;
如果省略,变成了普通数组,整个作为一个元素值。
3)读写与普通数组一致
写
数组变量[key]=value
读
${数据变量[key]}
示例
declare -A arr1
arr1=([bj]="北京" [sh]="上海" [gz]="广州" [sz]="深圳" [xt]="小步教程")
echo ${arr1[@]}
echo "第1个元素:"
echo ${arr1[bj]}
arr1[bj]="北京北京"
echo "第1个元素:${arr1[bj]}"
2 遍历
关联数组的操作也与数组操作一致。例如:求数组元素个数、所有元素,等。
遍历关联数组主要通过for in下标集合的形式,可以同时获取key、value。
示例
declare -A arr1
arr1=([bj]="北京" [sh]="上海" [gz]="广州" [sz]="深圳" [xt]="小步教程")
for key in ${!arr1[*]}
do
echo "key值:${key},value值:${arr1[$key]}"
done
元素取value值时key前需加$,外层的$并不能识别key是变量。