Linuxのシェルで環境変数の値を評価してコマンドを実行する!(eval)

Linuxのシェルで環境変数の値を評価してコマンドを実行します。

evalコマンド検証用のファイルを作成する!

以下のファイルを準備します。

$ cat sample_eval.txt 
eval

evalコマンドで環境変数の値を評価してコマンドを実行する!

以下のシェルを準備します。CMD変数には、環境変数が環境変数名で格納されています。

$ cat sample_eval.sh 
#!/bin/bash

STR="eval"
CMD="grep \$STR sample_eval.txt"
echo $CMD
eval $CMD

実行してみます。$STR環境変数が、評価されてから実行されます。

$ ./sample_eval.sh 
grep $STR sample_eval.txt
eval

おわりに

シェル内で環境変数名のままコマンドを組み立てた場合は、evalコマンドで評価してコマンドを作成して、実行させることができます。

関連記事

関連書籍(Amazon)