bash でも変数名の変数を使えます。
php では variable variable (可変変数)、javascript では obj[name]()
などとやります。
関数名や変数名を、変数に確保しておき後で使ったり、動的に変数名をつくって変数を参照するなどするときに使われます。java などは class の reflection をしたりで少々厄介だった記憶があります。
もちろんスクリプト言語(ときに逐次インタプリタ)なのでeval / $() /
/でも実現出来ますが。圧倒的にかんたんなので知っておくと役立ちます。
a=${varname}
で殆どの場合解決するんで余り出番はないかもしれません。
bash の 変数名の文字列 indirect access
少し例を見てみます。変数名を格納した文字列の変数にアクセスする例です。
# 間接的アクセス
a=takuya name=a echo my name is ${!name}
# 実行結果
my name is takuya
導入されたバージョン
bash 2