加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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[@]}
${!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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读