Shell中map的使用


Shell中的map與array有很多的相似之處,array操作:https://www.cnblogs.com/qq931399960/p/10786111.html

一、在使用map時,需要先聲明,否則結果可能與預期不同,array可以不聲明

declare -A map

二、初始化map

與array類似,可以使用括號直接初始化,也可以通過添加的方式來初始化數據,與array不同的是,括號直接初始化時使用的為一個鍵值對,添加元素時,下標可以不是整數

map=(["aa"]="11" ["bb"]="22")
map["name"]="val"
map["apple"]="pen"

三、輸出所有的key

若未使用declare聲明map,則此處將輸出0,與預期輸出不符,此處輸出語句格式比arry多了一個!

echo ${!map[@]}

四、輸出所有value

與array輸出格式相同

echo ${map[@]}

五、輸出map長度

與array輸出格式相同

echo ${#map[@]}

六、遍歷,根據key找到對應的value

for key in ${!map[*]};do
    echo ${map[$key]}
done

七、遍歷所有的key

for key in ${!map[@]};do
    echo $key
done

八、遍歷所有的value

for val in ${map[@]};do
    echo $val
done

如上,可以發現,map與arry有很多的相似之處,在存儲上兩者最大的區別可能是array的key只能為整數,而map的key則可以為任何值

 

實際應用

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM