Shell关联数组
发布时间:2020-12-14 02:15:47 所属栏目:Linux 来源:网络整理
导读:现在最新的 Bash Shell 已经支持关联数组了。关联数组使用字符串作为下标,而不是整数,这样可以做到见名知意。 关联数组也称为“键值对(key-value)”数组,键(key)也即字符串形式的数组下标,值(value)也即元素值。 例如,我们可以创建一个叫做 color
现在最新的 Bash Shell 已经支持关联数组了。关联数组使用字符串作为下标,而不是整数,这样可以做到见名知意。 关联数组也称为“键值对(key-value)”数组,键(key)也即字符串形式的数组下标,值(value)也即元素值。 例如,我们可以创建一个叫做 color 的关联数组,并用颜色名字作为下标。 declare -A color color["red"]="#ff0000" color["green"]="#00ff00" color["blue"]="#0000ff"也可以在定义的同时赋值: declare -A color=(["red"]="#ff0000",["green"]="#00ff00",["blue"]="#0000ff")不同于普通数组,关联数组必须使用带有 -A 选项的 declare 命令创建。关于 declare 命令的详细用法请访问:Shell declare和typeset命令:设置变量属性
访问关联数组元素访问关联数组元素的方式几乎与普通数组相同,具体形式为:array_name["index"] 例如:color["white"]="#ffffff" color["black"]="#000000" 加上 $() 即可获取数组元素的值:
$(array_name["index"]) 例如:echo $(color["white"]) white=$(color["black"]) 获取所有元素的下标和值使用下面的形式可以获得关联数组的所有元素值:
${array_name[@]}
${!array_name[@]} 获取关联数组长度使用下面的形式可以获得关联数组的长度:
${#array_name[*]} 关联数组实例演示: #!/bin/bash declare -A color color["red"]="#ff0000" color["green"]="#00ff00" color["blue"]="#0000ff" color["white"]="#ffffff" color["black"]="#000000" #获取所有元素值 for value in ${color[*]} do echo $value done echo "****************" #获取所有元素下标(键) for key in ${!color[*]} do echo $key done echo "****************" #列出所有键值对 for key in ${!color[@]} do echo "${key} -> ${color[$key]}" done运行结果: #ff0000 #0000ff #ffffff #000000 #00ff00 **************** red blue white black green **************** red -> #ff0000 blue -> #0000ff white -> #ffffff black -> #000000 green -> #00ff00 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |