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」と2番目のエコー部分の空白行を出力します。正しい出力を得るのを手伝ってください、そして私は初心者です。ありがとう

4

1 に答える 1

0

name=ENV1ENV1変数の内容を変数に割り当てませんが、代わりにname実際の文字列ENV1を割り当てます。

  • 配列をにコピーするENV1nameは、次を使用できます。

    name=$ENV1

    これはと同じname=${ENV1[0]}です。インデックスが指定されていないため、配列変数の最初の要素がコピーされます。したがって、ここでは、インデックス0のみが考慮されます。

  • のすべての値をに割り当てるにはENV1name次を使用する必要があります。

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

    これにより、配列変数nameがのすべての要素に設定されENV1ます。

于 2013-01-12T11:46:12.290 に答える