Linux Shell Map的用法詳解
Map定義:
在使用map時(shí),需要先聲明,否則結(jié)果可能與預(yù)期不同,array可以不聲明
方式1:
declare -A myMap myMap["my03"]="03"
方式2:
declare -A myMap=(["my01"]="01" ["my02"]="02") myMap["my03"]="03" myMap["my04"]="04"
Map初始化:
與array類似,可以使用括號(hào)直接初始化,也可以通過添加的方式來初始化數(shù)據(jù),與array不同的是,括號(hào)直接初始化時(shí)使用的為一個(gè)鍵值對(duì),添加元素時(shí),下標(biāo)可以不是整數(shù)
myMap["my03"]="03" myMap["my04"]="04"
輸出Map所有的key、value、長(zhǎng)度:
# 1)輸出所有的key #若未使用declare聲明map,則此處將輸出0,與預(yù)期輸出不符,此處輸出語句格式比arry多了一個(gè)! echo ${!myMap[@]} #2)輸出所有value #與array輸出格式相同 echo ${myMap[@]} #3)輸出map長(zhǎng)度 #與array輸出格式相同 echo ${#myMap[@]}
Map遍歷:
#1)遍歷,根據(jù)key找到對(duì)應(yīng)的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測(cè)試:
[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的長(zhǎng)度:" echo ${#myMap[@]} echo "五、遍歷,根據(jù)key找到對(duì)應(yīng)的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的長(zhǎng)度:
4
五、遍歷,根據(jù)key找到對(duì)應(yīng)的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]#
到此這篇關(guān)于Linux Shell Map的用法詳解的文章就介紹到這了,更多相關(guān)Linux Shell Map內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- linux shell 根據(jù)進(jìn)程名獲取pid的實(shí)現(xiàn)方法
- linux shell 中判斷文件、目錄是否存在的方法
- linux shell中“.” 和 “./”執(zhí)行的區(qū)別詳解
- Linux shell 提取文件名和目錄名的方法
- Linux利用Shell腳本部署jar包項(xiàng)目的完整步驟
- Linux配置SSH和Xshell連接服務(wù)器的教程(圖解)
- linux shell(.sh)腳本編寫和運(yùn)行入門
- 深入理解Linux shell中2>&1的含義(全網(wǎng)最全,看完就懂)
- Linux shell實(shí)現(xiàn)壓縮多個(gè)文件代碼實(shí)例
相關(guān)文章
shell for循環(huán)、循環(huán)變量值付給其他shell腳本的方法
今天小編就為大家分享一篇shell for循環(huán)、循環(huán)變量值付給其他shell腳本的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06shell腳本實(shí)現(xiàn)分日志級(jí)別輸出的方法
下面小編就為大家?guī)硪黄猻hell腳本實(shí)現(xiàn)分日志級(jí)別輸出的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03shell腳本輸出多個(gè)主機(jī)的網(wǎng)卡速率的方法
這篇文章主要介紹了shell腳本輸出多個(gè)主機(jī)的網(wǎng)卡速率的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12Linux 中awk 提取包含某個(gè)關(guān)鍵字的段落
AWK是一種處理文本文件的語言,是一個(gè)強(qiáng)大的文本分析工具。這篇文章主要介紹了Linux 中awk 提取包含某個(gè)關(guān)鍵字的段落實(shí)例代碼,需要的朋友可以參考下2020-01-01一個(gè)shell小案例(創(chuàng)建日期目錄)
需要在多個(gè)目錄中 (如:beijing shanghai tianjin guangzhou 等等) 創(chuàng)建子目錄(以年份命名),然后進(jìn)入子目錄,新建目錄并以當(dāng)天的日期命名2016-08-08關(guān)于shell的幾個(gè)不為人知卻十分有用的命令分享
這篇文章主要介紹了關(guān)于shell的幾個(gè)不為人知卻十分有用的命令,需要的朋友可以參考下2016-03-03