如何在数组中使用变量

时间:2013-01-12 11:02:07

标签: arrays unix variables ksh

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

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

1 个答案:

答案 0 :(得分:0)

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

  • 要将数组ENV1复制到name,您可以使用此功能:

      

    name=$ENV1

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

  • 要将ENV1的所有值分配到name,您应该使用:

      

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

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