我试图在数组变量中使用变量,但它没有按预期工作。
CODE
ENV2[0]=567
ENV1[0]=123
ENV1[1]=789
if [ $1 -eq 1 ]
then
name=ENV1
echo "${name[0]}"
echo "${name[1]}"
else
name=ENV1
echo "${name[1]}"
fi
输出:ENV1 而不是“123”,它的打印“ENV1”和第二个回声部分的空白行。请帮助获得正确的输出,我是初学者。感谢
答案 0 :(得分:0)
name=ENV1
不会将变量ENV1
的内容分配给变量name
,而是将实际字符串 ENV1 分配。
要将数组ENV1
复制到name
,您可以使用此功能:
name=$ENV1
这与name=${ENV1[0]}
相同。数组的第一个元素
变量将被复制,因为未指定索引。所以在这里,
只考虑索引0.
要将ENV1
的所有值分配到name
,您应该使用:
set -A name "${ENV1[@]}"
这会将数组变量name
设置为ENV1
的所有元素。