utte

env 環境変数を表示する、または環境を変えてコマンドを実行する

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

試してみる

主なオプション

-i環境を空にしてからコマンドを実行する
-u 名前指定した変数を取り除いてコマンドを実行する
-0各項目を改行ではなく NUL で区切って表示する
名前=値変数を設定してコマンドを実行する

解説

基本

引数なしの env は、現在の環境変数を 名前=値 の形で1行ずつ表示します。数が多いので、env | grep 名前 や | sort で絞って見るのが普通です。

コマンドを実行する

コマンドを付けると、環境を調整したうえで、そのコマンドを実行します。変更は、実行するコマンドの間だけです。呼び出し元のシェルの環境は変わりません。

printenv との違い

特定の変数の値だけを見たいときは、printenv HOME のように、printenv が使えます。環境変数の一覧は printenv でも出せます。

シェル変数は出ない

env が表示するのは、export された環境変数だけです。export していないシェル変数は出ません。シェル変数も含めて見たいときは、set を使います。

スクリプトでの利用

スクリプトの1行目の #!/usr/bin/env bash は、PATH から bash を探して実行する書き方です。bash のある場所が環境によって違っても、動かせます。

関連するコマンド

LinuC 101の出題範囲