env
env(エンブ)は UNIX 系オペレーティングシステムで使われるユーティリティである。環境変数のリストを出力したり、現在の環境を変えることなく変更された環境の下で他のユーティリティを実行するのに使われる。env を使うことで、変数の追加や削除、変数の値の変更を行える。
上記のような本来の目的以外に、インタプリタを起動するための一種のトリックによく使われる。スクリプトでインタプリタの起動を仲介する目的に使われ、その用途では、通常、環境に手を加えることはしない。
目次 |
例 [編集]
通常の用法 [編集]
新しいシェルに対して環境をクリアするには
env -i /bin/sh
X Window System アプリケーション xcalc を起動し、それが違うディスプレーに表示されるようにするには
env DISPLAY=foo.bar:1.0 xcalc
トリック的用法 [編集]
Unix の shebang では、通常インタプリタのフルパスを与える必要がある。しかし、Unixの環境では、標準のプログラムは /usr/bin に、ローカルで追加したプログラムは /usr/local/bin に置かれる、といった理由から、インタプリタのフルパスが一定でない場合がある。
以下に非常に単純な Python スクリプトを示す。
#!/usr/bin/env python print "Hello World."
この例のように、インタプリタの代わりに env を指定することで、スクリプトの実行時に PATH からインタプリタが検索され実行される。これによりスクリプトが、より多くの環境で、shebang に手を入れなくとも動く可能性が高くなる。一方で、PATH から検索されるために、例えばユーザのホームディレクトリの下にあるインタプリタが実行される等、思わぬ場所にあるインタプリタが実行される危険もある。
また env のフルパスはたいていは /usr/bin/env であるが、/usr というヒエラルキがなくフルパスが /bin/env であるという環境も無くはないため、このトリックを使用しても必ずしも万能ではない。
外部リンク [編集]
- 公式 GNU env マニュアル(英語)
- Manpage of ENV
- env(1) man page(SunOS リファレンスマニュアル)
- env(1) man page(HP-UX リファレンス)
|
||||||||||||||||||||||||||