sh + コマンドを実行してそれをパラメータ(VAL)に設定する方法

sh + コマンドを実行してそれをパラメータ(VAL)に設定する方法

以下のコマンドを見てください(シェルはシュ

私にはよく分からない

走るとき - eval echo \$arr$n、私は価値を得る1つの予想通り

なぜ: VAL=eval echo \$arr$n、 そして$VALをエコーする同じ値を印刷しない1つの?

arr1に値を設定する

# n=1
# eval arr$n=a

arr1から値を印刷する

# n=1
# eval echo \$arr$n
  a

セットeval echo \$arr$n の中へヴァル、印刷$VAL

# VAL=` eval echo \$arr$n `
# echo $VAL
{*}1

コマンドで修正する必要があるもの -VAL=eval echo \$arr$nなので、私が$VALをエコーする私は価値を得る1つの ?

答え1

$()バッククォートの代わりに以下を試してください:

VAL=$(eval echo \$arr$n)

関連情報