Shell关联数组

Shell关联数组,第1张

概述现在最新的 Bash Shell 已经支持关联数组了。关联数组使用字符串作为下标,而不是整数,这样可以做到见名知意。 例如,我们可以创建一个叫做 colors 的关联数组,并用颜色名字作为索 现在最新的 Bash Shell 已经支持关联数组了。关联数组使用字符串作为下标,而不是整数,这样可以做到见名知意。

关联数组也称为“键值对(key-value)”数组,键(key)也即字符串形式的数组下标,值(value)也即元素值。

例如,我们可以创建一个叫做 @R_419_6004@ 的关联数组,并用颜色名字作为下标。
declare -A @R_419_6004@@R_419_6004@["red"]="#ff0000"@R_419_6004@["green"]="#00ff00"@R_419_6004@["blue"]="#0000ff"
也可以在定义的同时赋值:
declare -A @R_419_6004@=(["red"]="#ff0000",["green"]="#00ff00",["blue"]="#0000ff")
不同于普通数组,关联数组必须使用带有-A选项的 declare 命令创建。关于 declare 命令的详细用法请访问:Shell declare和typeset命令:设置变量属性访问关联数组元素访问关联数组元素的方式几乎与普通数组相同,具体形式为:

array_name["index"]

例如:
@R_419_6004@["white"]="#ffffff"@R_419_6004@["black"]="#000000"

加上$()即可获取数组元素的值:

$(array_name["index"])

例如:
echo $(@R_419_6004@["white"])white=$(@R_419_6004@["black"])
获取所有元素的下标和值使用下面的形式可以获得关联数组的所有元素值:

${array_name[@]}
${array_name[*]}

使用下面的形式可以获取关联数组的所有下标值:

${!array_name[@]}
${!array_name[*]}

获取关联数组长度使用下面的形式可以获得关联数组的长度:

${#array_name[*]}
${#array_name[@]}


关联数组实例演示:
#!/bin/bashdeclare -A @R_419_6004@@R_419_6004@["red"]="#ff0000"@R_419_6004@["green"]="#00ff00"@R_419_6004@["blue"]="#0000ff"@R_419_6004@["white"]="#ffffff"@R_419_6004@["black"]="#000000"#获取所有元素值for value in ${@R_419_6004@[*]}do    echo $valuedoneecho "****************"#获取所有元素下标(键)for key in ${!@R_419_6004@[*]}do    echo $keydoneecho "****************"#列出所有键值对for key in ${!@R_419_6004@[@]}do    echo "${key} -> ${@R_419_6004@[$key]}"done
运行结果:
#ff0000
#0000ff
#ffffff
#000000
#00ff00
****************
red
blue
white
black
green
****************
red -> #ff0000
blue -> #0000ff
white -> #ffffff
black -> #000000
green -> #00ff00
总结

以上是内存溢出为你收集整理的Shell关联数组全部内容,希望文章能够帮你解决Shell关联数组所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1032684.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存