Open vieyahn2017 opened 3 years ago
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长度
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则可以为任何值
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则可以为任何值