Linux Shell Map的用法详解
Map定义:
在使用map时,需要先声明,否则结果可能与预期不同,array可以不声明
方式1:
declare-AmyMap myMap["my03"]="03"
方式2:
declare-AmyMap=(["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找到对应的value forkeyin${!myMap[*]};do echo$key echo${myMap[$key]} done #2)遍历所有的key forkeyin${!myMap[@]};do echo$key echo${myMap[$key]} done #3)遍历所有的value forvalin${myMap[@]};do echo$val done
Map测试:
[root@cdh-143shell-test]#moremap-test.sh #!/bin/sh echo"一、定义Map:declare-AmyMap=([\"myMap00\"]=\"00\"[\"myMap01\"]=\"01\")" declare-AmyMap=(["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:" forkeyin${!myMap[*]};do echo"key:"$key echo"value:"${myMap[$key]} done echo"六、遍历所有的key:" forkeyin${!myMap[@]};do echo"key:"$key echo"value:"${myMap[$key]} done echo"七、遍历所有value:" forvalin${myMap[@]};do echo"value:"$val done
输出:
[root@cdh-143shell-test]#./map-test.sh
一、定义Map:declare-AmyMap=(["myMap00"]="00"["myMap01"]="01")
二、输出所有的key:
my02my03my00my01
三、输出所有value:
02030001
四、输出map的长度:
4
五、遍历,根据key找到对应的value:
key:my02
value:02
key:my03
value:03
key:my00
value:00
key:my01
value:01
六、遍历所有的key:
key:my02
value:02
key:my03
value:03
key:my00
value:00
key:my01
value:01
七、遍历所有value:
value:02
value:03
value:00
value:01
[root@cdh-143shell-test]#
到此这篇关于LinuxShellMap的用法详解的文章就介绍到这了,更多相关LinuxShellMap内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!