shell脚本中,无法获取“关联数组”(字典)的key,尝试过很多方法,输出都不对,求教
shell脚本如下:#!/bin/bashdeclare-Aphonephone=(["key1"]=135["key2"]=136["key3"]=158)echo${...
shell脚本如下:
#!/bin/bash
declare -A phone
phone=(["key1"]=135 ["key2"]=136 ["key3"]=158)
echo ${!phone[*]}
echo ${!phone[@]}
#########################
运行结果如下:
~ ./shell.sh
./shell.sh: line 2: declare: -A: invalid option
declare: usage: declare [-afFirtx] [-p] [name[=value] ...]
0
0
去掉数组声明运行结果如下:
0
0
求教各位,网上几乎所有例子都是${!phone[*]}或者${!phone[@]} 这两种方法,但是我确实取不出来呀,求教! 展开
#!/bin/bash
declare -A phone
phone=(["key1"]=135 ["key2"]=136 ["key3"]=158)
echo ${!phone[*]}
echo ${!phone[@]}
#########################
运行结果如下:
~ ./shell.sh
./shell.sh: line 2: declare: -A: invalid option
declare: usage: declare [-afFirtx] [-p] [name[=value] ...]
0
0
去掉数组声明运行结果如下:
0
0
求教各位,网上几乎所有例子都是${!phone[*]}或者${!phone[@]} 这两种方法,但是我确实取不出来呀,求教! 展开
4个回答
展开全部
你去掉数组声明的话就不能声明是关联数组了
用下面的试下看看
declare -A phone1
phone1=(["key1"]=135 ["key2"]=136 ["key3"]=158)
echo "${phone1[key1]}"
# 如果报 -bash: declare: phone: cannot convert indexed to associative array 就换个变量名
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-05-20
展开全部
关联数组,是bash 4.0新增的特性,你的shell版本多少
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sh -x yourshell
看看问题在哪
看看问题在哪
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询