溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Map命令怎么在Shell中使用

發(fā)布時(shí)間:2021-03-31 16:58:00 來(lái)源:億速云 閱讀:429 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

Map命令怎么在Shell中使用?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

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)直接初始化,也可以通過(guò)添加的方式來(lái)初始化數(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ù)期輸出不符,此處輸出語(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]#

看完上述內(nèi)容,你們掌握Map命令怎么在Shell中使用的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI