linux map 文件,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]#

到此这篇关于Linux Shell Map的用法详解的文章就介绍到这了,更多相关Linux Shell Map内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值