以下があるとしましょう。
foo1=abc
i=1
a="FOO${i}"
echo ${${a}}
echo ${`echo $a`} # I also tried that
エラーが発生しますbash: ${${a}}: bad substitution
。
ベストアンサー1
${!parameter}
あなたの場合は、パラメータ間接参照を使用できます${!a}
。
$ foo1=abc
$ i=1
$ a="foo${i}"
$ echo "${!a}"
abc
「パラメータ拡張」セクションでman bash
:
${パラメータ}
.........
引数の最初の文字が感嘆符(!)の場合、最初のレベル変数間接参照が導入されます。 Bash は、残りの引数で構成される変数値を変数名として使用します。次に、その変数を展開し、引数自体の値ではなく、残りの置換にその値を使用します。