0

次のように、間接展開を使用して、名前が他の変数に含まれている変数を呼び出すことができることを知っています

VAR="テスト"

VARNAME="VAR"

echo ${!VARNAME}

ただし、これで変数を再定義しようとすると:

VARVALUE=0 VALUE="VARVALUE"

${!VARNAME}=${!VALUE}

echo ${!VARNAME}

それはうまくいきません、そして私は得ます

bash: test=0: コマンドが見つかりません

この変数宣言が失敗する理由はわかりますが、修正方法がわかりません。検索では、間接展開で変数を呼び出す例しか見つかりませんでしたが、そのように定義していません。

編集:

もう少し検索した後、試してみました

eval "${!VARNAME}=${!VALUE}"

投げる

bash: =0: コマンドが見つかりません

4

1 に答える 1

0

もう少しいじって、解決策を見つけることができました

eval "$VARNAME=${!VALUE}"

于 2013-06-18T16:02:13.503 に答える