Linux Shell Map的用法详解

 更新时间:2020年05月08日 10:22:59   作者:cctext  
这篇文章主要介绍了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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • shell学习之printf命令格式化输出语句

    shell学习之printf命令格式化输出语句

    printf命令模仿C程序库(library)里的printf()库程序(library routine)。它几乎复制了该函数的所有功能。不过在Shell层级的版本上,会有些差异。下面这篇文章就给大家主要介绍了shell中printf命令格式化输出语句的相关资料,需要的朋友可以参考下。
    2017-01-01
  • 详解Shell编程之变量数值计算(二)

    详解Shell编程之变量数值计算(二)

    本篇文章主要介绍了详解Shell编程之变量数值计算(二),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • 一个简单的防CC攻击Shell脚本分享

    一个简单的防CC攻击Shell脚本分享

    这篇文章主要介绍了一个简单的防CC攻击Shell脚本分享,主要原理是分析apache或者nginx的访问日志,对大量访问的IP加入iptables进行禁止访问,需要的朋友可以参考下
    2014-06-06
  • linux shell 字符串操作(长度,查找,替换)详解

    linux shell 字符串操作(长度,查找,替换)详解

    这篇文章主要介绍了linux shell 字符串操作(长度,查找,替换)详解,需要的朋友可以参考下
    2015-10-10
  • 如何让history命令显示日期和时间

    如何让history命令显示日期和时间

    我们都对 history 命令很熟悉。它将终端上 bash 执行过的所有命令存储到 .bash_history 文件中,来帮助我们复查用户之前执行过的命令。这篇文章主要介绍了让history命令显示日期和时间的方法,需要的朋友可以参考下
    2018-01-01
  • 消耗CPU资源的shell脚本

    消耗CPU资源的shell脚本

    使用死循环消耗CPU资源,如果服务器是有多颗CPU,可以选择消耗多少颗CPU的资源
    2013-08-08
  • Shell中数组以及其相关操作的详细实例

    Shell中数组以及其相关操作的详细实例

    这篇文章主要给大家介绍了关于Shell中数组以及其相关操作的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • linux Shell入门:掌握Linux,OS X,Unix的Shell环境

    linux Shell入门:掌握Linux,OS X,Unix的Shell环境

    这篇文章主要介绍了linux Shell入门:掌握Linux,OS X,Unix的Shell环境 ,需要的朋友可以参考下
    2015-04-04
  • shell脚本中if判断‘-a‘ - ‘-z‘的具体使用

    shell脚本中if判断‘-a‘ - ‘-z‘的具体使用

    本文主要介绍了shell脚本中if判断‘-a‘ - ‘-z‘具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-03-03
  • Linux下使用shell脚本自动执行脚本文件

    Linux下使用shell脚本自动执行脚本文件

    这篇文章主要介绍了Linux下使用shell脚本自动执行脚本文件的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-12-12

最新评论