我正在尝试使用数组变量连接字符串,但出现错误。
declare -a arr
arr=(one two three)
var= "${arr[0]} ${arr[1]}"
echo $var
预期产量
one two
(一到两个之间有4个空格)
我收到以下错误:
[wasadmin@gblabvl31 IBM]$ ./test.sh
./test.sh: line 10: one two: command not found
这是否意味着我们不能为变量分配数组元素(用作变量)?还有什么其他方法可以做到这一点
您必须在以下位置删除空格=
:
var="${arr[0]} ${arr[1]}"
Bash支持一种语法,该语法允许您在调用命令时临时设置变量。语法就是这样VARNAME=somevalue command
。这将执行该命令,将具有(环境)变量设置VARNAME
到somevalue
。如果您说的VARNAME= command
话,bash会将其解释为VARNAME="" command
ie ,即将变量设置为空字符串。在您的情况下,这会导致bash"${arr[0]} ${arr[1]}"
像命令一样尝试执行部件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句