Linux Shell:Map的用法
Posted yy3b2007com
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux Shell:Map的用法相关的知识,希望对你有一定的参考价值。
Map定义:
在使用map时,需要先声明,否则结果可能与预期不同,array可以不声明
方式1:
declare -A myMap myMap["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找到对应的value for key in $!myMap[*];do echo $key echo $myMap[$key] done #2)遍历所有的key for key in $!myMap[@];do echo $key echo $myMap[$key] done #3)遍历所有的value for val in $myMap[@];do echo $val done
Map测试:
[root@cdh-143 shell-test]# more map-test.sh #!/bin/sh echo "一、定义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] done echo "六、遍历所有的key:" for key in $!myMap[@];do echo "key:"$key echo "value:"$myMap[$key] done echo "七、遍历所有value:" for val in $myMap[@];do echo "value:"$val done
输出:
[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: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-143 shell-test]#
参考《Shell中map的使用》
以上是关于Linux Shell:Map的用法的主要内容,如果未能解决你的问题,请参考以下文章
Linux下Shell脚本命令行参数:getoptgetopts用法
Linux下Shell脚本命令行参数:getoptgetopts用法