【env】Linuxで環境を指定してコマンドを実行する

Linuxで環境を指定してコマンドを実行するenvについて説明します。

envコマンドの使い方

envコマンドの書式は以下の通りです。

env [オプション] [変数名=値] [コマンド [引数]...]

環境を変更してからコマンドを実行します。envのみ入力した場合は、環境変数の一覧を表示します(printenvコマンドと同じ動作)。

オプション

-i 環境が空の状態でコマンドを実行する
-0 環境変数の一覧出力時に改行を入れない
-u 変数名 指定した環境変数を一時的に削除して実行する

環境変数の一覧を表示する

envのみを入力することで環境変数の一覧を確認できます。

$ env

環境変数を指定してコマンドを実行する

以下は環境変数のLANGにC(英語)を設定して、dateコマンドを実行する例です。

$ env LANG=C date
Mon Sep 26 22:19:34 JST 2016
$ date
2016年  9月 26日 月曜日 22:19:33 JST

この例では比較のために環境変数を指定しない場合も実行しています。

環境が空の状態でコマンドを実行する

「-i」 オプションを指定することで、現在のオプションを無視してコマンドを実行できます。

$ env -i date
Mon Sep 26 22:31:46 JST 2016

一時的に環境変数を削除してコマンドを実行する

「-u」オプションの後に削除したい環境変数を指定することで、実行時にのみ環境変数を無視します。

$ env -u LANG date
Mon Sep 26 22:31:46 JST 2016

一時的に削除するだけなので、実行後には環境変数は元の値に戻ります。