RECOMMEND

ハッカーと画家
ハッカーと画家
プログラマ必読。→感想


C言語ポインタ完全制覇
C言語ポインタ完全制覇
C言語 対ポインタ最強兵器。
感想

COUNTER

MONTHLY

CATEGORIES

RECENT ENTRIES

RECENT COMMENTS

RECENT TRACKBACKS

twitter

Twitterボタン

APPENDIX

sugarball

こまごまと、プログラミング関係のtipsを。

[スポンサー広告]スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[UNIX]シェルで文字列変数をコマンドとして実行する(eval、exec) 

シェルで文字列変数に実行したいコマンドを格納したはいいけど、「どうやって実行すんの?」みたいな状況になったときに使えるのがevalコマンドとexecコマンドです。
$ HENSU="ls" ←この「HENSU」をコマンドとして実行したい。。

使い方は簡単で、
$ eval $HENSU
data1.txt ← lsコマンドの結果が表示される
のように、コマンドとして実行したい文字列変数をevalコマンドの引数に指定すればOKです。上記の例では、evalコマンドを使用しましたが、execコマンドを使用することでも、ほぼ同様の結果を得ることができます。

しかし、execコマンドを使用する場合は、コマンドの実行結果が表示された直後にシェルが終了してしまうので注意が必要です。
(参考:Manpage of EXEC
$ exec $HENSU
data1.txt ← lsコマンドの結果が表示される
※ここでシェルが終了してしまう

コメント

その例だと

$ $HENSU
でも実行できますね。
クォートとかの関係でevalを使わざるを得ない場面もあった気がしますけど。

>nimoさま

>$ $HENSU
>でも実行できますね。
うぉ、本当だ!

指摘ありがとうございます。。

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://stackoftips.blog79.fc2.com/tb.php/34-31e4eb89

«  | HOME |  »

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。