Map定义:
在使用map时,需要先声明,否则结果可能与预期不同,array可以不声明
方式1:
declare -A myMapmyMap['my03']='03'
方式2:
declare -A myMap=(['my01']='01' ['my02']='02')myMap['my03']='03'myMap['my04']='04'
Map初始化:
与array类似,可以使用括号直接初始化,也可以通过添加的方式来初始化数据,与array不同的是,括号直接初始化时使用的为一个键值对,添加元素时,下标可以不是整数
myMap['my03']='03'myMap['my04']='04'
输出Map所有的key、value、长度:
# 1)输出所有的key#若未使用declare声明map,则此处将输出0,与预期输出不符,此处输出语句格式比arry多了一个!echo ${!myMap[@]}#2)输出所有value#与array输出格式相同echo ${myMap[@]}#3)输出map长度#与array输出格式相同echo ${#myMap[@]}
Map遍历:
#1)遍历,根据key找到对应的valuefor key in ${!myMap[*]};do echo $key echo ${myMap[$key]}done#2)遍历所有的keyfor key in ${!myMap[@]};do echo $key echo ${myMap[$key]}done#3)遍历所有的valuefor val in ${myMap[@]};do echo $valdone
Map测试:
[root@cdh-143 shell-test]# more map-test.sh#!/bin/shecho '一、定义Map:declare -A myMap=(['myMap00']='00' ['myMap01']='01')'declare -A myMap=(['my00']='00' ['my01']='01')myMap['my02']='02'myMap['my03']='03'echo '二、输出所有的key:'echo ${!myMap[@]}echo '三、输出所有value:'echo ${myMap[@]}echo '四、输出map的长度:'echo ${#myMap[@]}echo '五、遍历,根据key找到对应的value:'for key in ${!myMap[*]};do echo 'key:'$key echo 'value:'${myMap[$key]}doneecho '六、遍历所有的key:'for key in ${!myMap[@]};do echo 'key:'$key echo 'value:'${myMap[$key]}doneecho '七、遍历所有value:'for val in ${myMap[@]};do echo 'value:'$valdone
输出:
[root@cdh-143 shell-test]# ./map-test.sh一、定义Map:declare -A myMap=(['myMap00']='00' ['myMap01']='01')二、输出所有的key:my02 my03 my00 my01三、输出所有value:02 03 00 01四、输出map的长度:4五、遍历,根据key找到对应的value:key:my02value:02key:my03value:03key:my00value:00key:my01value:01六、遍历所有的key:key:my02value:02key:my03value:03key:my00value:00key:my01value:01七、遍历所有value:value:02value:03value:00value:01[root@cdh-143 shell-test]#
到此这篇关于Linux Shell Map的用法详解的文章就介绍到这了,更多相关Linux Shell Map内容请搜索优爱好网以前的文章或继续浏览下面的相关文章希望大家以后多多支持优爱好网!
相关文章:
1. Win11右下角弹出英特尔无线bluetooth的解决教程2. 微软称本周无Win11 Dev或Canary新预览版本推送!3. Win11桌面自动刷新怎么办?Win11桌面自动刷新的解决方法4. Win11怎么和手机连接?Win11连接手机的方法5. Win11手柄连接成功用不了的解决方法6. Win11 Canary测试版出离奇Bug! 连接到 Xbox 有线手柄将无法关机7. BUG 还是新特性?Win11最新预览版任务栏可以移动到顶部了8. Win11卓越模式有什么用?Win11卓越模式详细介绍9. 微软下月将发布第 3 阶段修复补丁!进一步修复Win10 / Win11的Kerberos 漏洞10. Win11无法使用UPUPOO怎么办?Win11无法使用UPUPOO的解决方法
