Shell下如何关联下标是字符串的数组

Shell脚本中,可以使用关联数组来存储键值对数据。关联数组的下标是字符串,与索引数组不同。定义关联数组的语法是:

declare -A arrname例如:

declare -A fruits

这会定义一个名为fruits的关联数组。给关联数组赋值和访问的语法与索引数组相同:

fruits[apple]=red  # 赋值
echo ${fruits[apple]} # 访问,打印red

关联数组的一些常用操作:

1. 判断某个键是否存在:

if [ ${fruits[banana]+_} ]; then
    echo "banana exists" 
fi

2. 获取所有键名:

keys=(${!fruits[@]})
# keys会得到apple banana等键名

3. 获取所有值:

values=(${fruits[@]}) 
# values会得到red yellow等值

4. 获取键值对数量:

length=${#fruits[@]}

5. 遍历关联数组:

for key in ${!fruits[@]}; do
    echo $key: ${fruits[$key]}
done
# 打印 
# apple: red 
# banana: yellow

6. 删除一项:

unset fruits[apple]  # 删除apple项

7. 清空整个关联数组:

unset fruits
declare -A fruits  # 重新定义
© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论