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

前端之家收集整理的这篇文章主要介绍了linux – shell中的“无效算术运算符”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

猫test.sh

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

/ bin / bash-x test.sh

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

然后我修改test.sh:

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

/ 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")
@H_404_7@

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

最佳答案
使用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
@H_404_7@

猜你在找的Linux相关文章