Map定义:

在使用map时,需要先声明,否则结果可能与预期不同,array可以不声明

方式1:

declare -A myMap
myMap["my03"]=""

方式2:

declare -A myMap=(["my01"]="" ["my02"]="")
myMap["my03"]=""
myMap["my04"]=""

Map初始化:

与array类似,可以使用括号直接初始化,也可以通过添加的方式来初始化数据,与array不同的是,括号直接初始化时使用的为一个键值对,添加元素时,下标可以不是整数

myMap["my03"]=""
myMap["my04"]=""

输出Map所有的key、value、长度:

# )输出所有的key
#若未使用declare声明map,则此处将输出0,与预期输出不符,此处输出语句格式比arry多了一个!
echo ${!myMap[@]}
#)输出所有value
#与array输出格式相同
echo ${myMap[@]}
#)输出map长度
#与array输出格式相同
echo ${#myMap[@]}

Map遍历:

#)遍历,根据key找到对应的value
for key in ${!myMap[*]};do
echo $key
echo ${myMap[$key]}
done
#)遍历所有的key
for key in ${!myMap[@]};do
echo $key
echo ${myMap[$key]}
done
#)遍历所有的value
for val in ${myMap[@]};do
echo $val
done

Map测试:

[root@cdh- shell-test]# more map-test.sh
#!/bin/sh echo "一、定义Map:declare -A myMap=([\"myMap00\"]=\"00\" [\"myMap01\"]=\"01\")"
declare -A myMap=(["my00"]="" ["my01"]="")
myMap["my02"]=""
myMap["my03"]="" 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- shell-test]# ./map-test.sh
一、定义Map:declare -A myMap=(["myMap00"]="" ["myMap01"]="")
二、输出所有的key:
my02 my03 my00 my01
三、输出所有value: 四、输出map的长度: 五、遍历,根据key找到对应的value:
key:my02
value:
key:my03
value:
key:my00
value:
key:my01
value:
六、遍历所有的key:
key:my02
value:
key:my03
value:
key:my00
value:
key:my01
value:
七、遍历所有value:
value:
value:
value:
value:
[root@cdh- shell-test]#

参考《Shell中map的使用

Linux Shell:Map的用法的更多相关文章

  1. (12)Linux shell之read 用法

    Linux shell之read 用法 #!/bin/bash#read 用来读取屏幕输入或是读取文件内容.read -p  "please input you  name: " ...

  2. linux shell date的用法

    该随笔引用自https://www.cnblogs.com/alsodzy/p/8403870.html 在 linux shell 里面date命令的参数 %% 一个文字的 % %a 当前local ...

  3. Linux Shell nohup命令用法

    linux的nohup命令的用法.   在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行.比如我们要运行mysql在后台: /us ...

  4. Linux shell - shift命令用法(转载)

    位置参数可以用shift命令左移.比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1.$2.$3丢弃,$0不移动.不带参数的shift命令相当于shift 1. 非常 ...

  5. Linux shell - cut命令用法(转载)

    cut  [-bn] [file] 或 cut [-c] [file]  或  cut [-df] [file] 使用说明 cut 命令从文件的每一行剪切字节.字符和字段并将这些字节.字符和字段写至标 ...

  6. Linux shell - scp命令用法

    例子: 远程复制一个文件从服务器A (172.0.0.0) /home/test/file1.txt 到 服务器B (172.0.0.1) /home/test 服务器A和服务器B的用户是 test ...

  7. 《Linux Shell 脚本攻略》读书笔记

    本书主要讲解一些linux shell命令的用法,讲解一些shell的奇技淫巧. 第一章 小试牛刀 主要介绍一些基本shell指令 终端打印:echo.printf 别名:alias 终端处理工具:t ...

  8. linux shell的here document用法(cat << EOF)

    什么是Here Document?Here Document 是在Linux Shell 中的一种特殊的重定向方式,它的基本的形式如下cmd << delimiter  Here Docu ...

  9. linux shell的here document用法

    转载自: http://my.oschina.net/u/1032146/blog/146941 什么是Here Document?Here Document 是在Linux Shell 中的一种特殊 ...

  10. Linux Shell脚本入门--wget 命令用法详解

    Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...

随机推荐

  1. 【转载】Linux磁盘管理:LVM逻辑卷管理

    Linux学习之CentOS(二十五)--Linux磁盘管理:LVM逻辑卷基本概念及LVM的工作原理 这篇随笔将详细讲解Linux磁盘管理机制中的LVM逻辑卷的基本概念以及LVM的工作原理!!! 一. ...

  2. 面向切面编程AOP——加锁、cache、logging、trace、同步等这些较通用的操作,如果都写一个类,则每个用到这些功能的类使用多继承非常难看,AOP就是解决这个问题的,python AOP就是装饰器

    面向切面编程(AOP)是一种编程思想,与OOP并不矛盾,只是它们的关注点相同.面向对象的目的在于抽象和管理,而面向切面的目的在于解耦和复用. 举两个大家都接触过的AOP的例子: 1)java中myba ...

  3. Python 爬虫js加密破解(四) 360云盘登录password加密

    登录链接:https://yunpan.360.cn/mindex/login 这是一个md5 加密算法,直接使用 md5加密即可实现 本文讲解的是如何抠出js,运行代码 第一部:抓包 如图 第二步: ...

  4. Python语言程序设计(3)--字符串类型及操作--time库进度条

    1.字符串类型的表示: 三引号可做注释,注释其实也是字符串 2.字符串的操作符 3.字符串处理函数 输出:

  5. mysql优化过程中遇见的坑(mysql优化问题特别注意)

    不要听信你看到的关于优化的“绝对真理”,包括本文所讨论的内容,而应该是在实际的业务场景下通过测试来验证你关于执行计划以及响应时间的假设. 单条查询最后添加 LIMIT 1,停止全表扫描. 对于char ...

  6. PageHelper分页正确用法

    依赖和配置就不说了,说用法 Page<Object> page = PageHelper.startPage(pageNum, pageSize); List<SysRoleDTO& ...

  7. jQuery 查找和过滤

    通常情况下选择器可以直接定位到我们想要的元素,但是,当我们拿到一个jQuery对象后,还可以以这个对象为基准,进行查找和过滤. 最常见的查找是在某个节点的所有子节点中查找,使用find()方法,它本身 ...

  8. GIL锁是什么鬼?

    参考链接: http://cenalulu.github.io/python/gil-in-python/ GIL不是Python特性 GIL是Python解释器(Cpython)时引入的概念,在JP ...

  9. Redis-基础介绍

    Redis 基础介绍 一.Redis介绍 二.Redis和Memecache的不同 三.Redis的最佳应用场景: 四.Redis支持的键值类型 五.安装Redis 六.Redis启动方式 七.Red ...

  10. CDH 版本 6.0.1 升级到 6.2.0 当前最新版本(CentOS 7.x)

    前文「CDH CM版本 6.0.1 升级到 CM 6.2.0 当前最新版本(CentOS 7.x)」 承接上文,当我们完成 CM 6.2.0 的升级之后,我们已经相当于完成了80% minor 的升级 ...