0

我尝试在数组变量中使用变量,但它没有按预期工作。

代码

    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”和第二个回显部分中的空白行。请帮助获得正确的输出,我是初学者。谢谢

4

1 回答 1

0

name=ENV1不会将变量的内容分配ENV1给 variable name,而是实际的字符串ENV1

  • 要将数组复制ENV1name,您可以使用以下命令:

    name=$ENV1

    这与name=${ENV1[0]}. 将复制数组变量的第一个元素,因为未指定索引。所以这里只考虑索引 0。

  • ENV1要分配to的所有值name,您应该使用以下命令:

    set -A name "${ENV1[@]}"

    这会将数组变量设置name为 的所有元素ENV1

于 2013-01-12T11:46:12.290 回答