シェルスクリプトを作成する際、事前に定めた変数名をスクリプト内で他の変数に代入し、それを展開・利用したいシチュエーションもあるだろう。 そんな時は、evalコマンドを用いて変数を2重展開することで対応可能だ。 例えば、以下のようなスクリプトを作成したとする。 #!/bin/sh # 変数 VALに値が入力されている VAL="test" # 変数 EVAL_VALに、変数名である「VAL」という文字列を入力 EVAL_VAL="VAL" # 変数 EVAL_VALを呼び出す echo $EVAL_VAL これをそのまま実行した場合、当然ながら出力される値は「VAL」となる。 $ cat test_eval_1.sh #!/bin/sh # 変数 VALに値が入力されている VAL="test" # 変数 EVAL_VALに、変数名である「VAL」という文字列を入力 EVAL_VAL="VA