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則可以為任何值
實際應用