evalコマンドのスクリプト例

12月 28, 2009

evalコマンドは、引数で渡された文字列をコマンドとして実行する。
その際コマンドライン展開を2度行うということは、覚えておいた方が良さそうだ
(これにより変数にセットされたパイプやリダイレクトが実行可能になる)。

以下は、evalを使用して変数を展開した結果をさらに変数名として使う(変数の入れ子?)
ためのスクリプト例。

eval_script.jpg

最初の行は引数が何も指定されなかった時の処理。
${${1}} は ‘${‘”${1}”‘}’ と記述するのが正しいが、途中あえて謝った記述もしてエラーを出力させ、
最後に正しい記述をしている。以下は実行例。

eval_exec.jpg

当然、${${1}} の箇所を削除して再度スクリプトを実行した場合は、”bad substitution”エラーは出なくなる。

Categories: shell

No Responses so far | Have Your Say!

Comments are closed.