在字典中,你会了吗字典存储一组键,教B键值每个键都有一个与之关联的中字典值。可以使用对应的使用键在字典中插入、检索或更新值。你会了吗字典数据结构针对基于键值的教B键值快速检索进行了优化,因此通常使用哈希表来实现。中字典在不同的编程语言中,字典通常有不同的名称,例如关联数组、hashmap 或映射。在本文中,将演示如何在 bash 中使用键值字典。以下使用 shell 脚本示例来说明字典的详细用法。
使用declare -A命令显式声明字典。
[root@localhost ~]# declare -A test_var
字典中添加键值对
如果需要在字典中添加键值对,使用下面命令操作:
[root@localhost ~]# declare -A dic
# 添加方式一
[root@localhost ~]# dic=([key1]="value1" [key2]="value2" [key3]="value3")
# 添加方式二
[root@localhost ~]# dic[key4]=value4
# 添加方式三,使用变量添加键值对
[root@localhost ~]# var_key1=key5
[root@localhost ~]# var_value1=value5
[root@localhost ~]# dic[$var_key1]=$var_value1
使用下面方式通过键的名称获取值:
[root@localhost ~]# echo ${ dic[key1]}
value1
[root@localhost ~]# echo ${ dic[$var_key1]}
value5
更新现有键的值与插入新的键值对没有什么不同。通过更新,现有值会被新值覆盖。
[root@localhost ~]# dic[key1]='puppy'
[root@localhost ~]# echo ${ dic[@]}
value5 value4 value3 value2 puppy
可以看到key1的值被改成 puppy了。
如果想检查一个键是否存储在字典中。可以通过检查是否设置了值来测试字典中键的存在(在条件中使用 -v 运算符)。
[root@localhost ~]# if [ -v dic[key1] ];then echo 'key1 exists in dic';fi
key1 exists in dic
[root@localhost ~]# if [ ! -v dic[key6] ];then echo 'key6 does not exists in dic';fi
key6 does not exists in dic
可以通过使用 unset 语句指定键,从字典中删除现有的键值对。
[root@localhost ~]# unset dic[key1]
[root@localhost ~]# unset dic[$var_key1]
[root@localhost ~]# echo ${ dic[@]}
value4 value3 value2
可以看到结果key1和key5的键值都删掉了
另一个常用的功能是遍历,使用${ !dic[@]}来获取所有的键名称,使用${ dic[@]}来获取所有的值。遍历存储在字典中的所有键值对并执行一些操作:
[root@localhost ~]# vim dic_for.sh
[root@localhost ~]# cat dic_for.sh
#!/bin/bash
declare -A dic
dic=([key1]="value1" [key2]="value2" [key3]="value3")
for key in "${ !dic[@]}"
do
echo "$key - ${ dic[$key]}"
done
[root@localhost ~]# sh dic_for.sh
key3 - value3
key2 - value2
key1 - value1
责任编辑:武晓燕 来源: Linux就该这么学 Bash编程语言(责任编辑:娱乐)
非凡中国(08032.HK)因购股权获行使发行2000万股 每股发行价港币0.478元
邯郸“万象汇”商业综合体项目主体结构封顶 预计明年12月底建成
漫威蜘蛛侠: 重制版 支持 DLSS 3, Game Ready驱动为DX 12带来性能提升
银保监会完善相关政策措施 支持符合绿色低碳发展需求的保险产品和服务
可以,很强,68行代码实现Bean的异步初始化,粘过去就能用
新游唱出来 索尼“One Room Playground”宣传片
微软 Windows 11安卓子系统 2306 预览版更新,改进网络、画中画、存储等
康健国际医疗(03886.HK)公布消息:预计年度综合亏损约2.55亿港元