加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – shell中的“无效算术运算符”

发布时间:2020-12-13 19:03:26 所属栏目:Linux 来源:网络整理
导读:猫test.sh #!/bin/bashkey="index";arr[$key]="val"echo ${arr[${key}]} / bin / bash-x test.sh + key=index+ arr[$key]=val+ echo valval 然后我修改test.sh: #!/bin/bashkey="index.index";arr[$key]="val"echo ${arr[${key}]} / bin / bash -x test.sh

猫test.sh

#!/bin/bash
key="index";
arr[$key]="val"
echo ${arr[${key}]}

/ bin / bash-x test.sh

+ key=index
+ arr[$key]=val
+ echo val
val

然后我修改test.sh:

#!/bin/bash
key="index.index";
arr[$key]="val"
echo ${arr[${key}]}

/ bin / bash -x test.sh

+ key=index.index
+ arr[$key]=val
test.sh: line 3: index.index: syntax error: invalid arithmetic operator (error token is ".index")
test.sh: line 4: index.index: syntax error: invalid arithmetic operator (error token is ".index")

为什么会出现此错误,任何建议都会受到欢迎!

最佳答案
使用declare -A arr将数组变量声明为关联数组.

$cat test.sh 
#!/bin/bash
set -x 
declare -A arr
key="index.index";
arr["$key"]="val"
echo "${arr["${key}"]}"

$./test.sh 
+ declare -A arr
+ key=index.index
+ arr["$key"]=val
+ echo val
val

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读