【 env 】コマンド――環境変数を指定してコマンドを実行する:Linux基本コマンドTips(175)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、環境変数を指定してコマンドを実行する「env」コマンドです。
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、環境変数を指定してコマンドを実行する「env」コマンドです。
envコマンドとは?
「env」は、環境変数の値を設定しつつ、同時に指定したコマンドを実行するコマンドです。環境変数を現在の設定と変えた場合に、あるコマンドがどのように動作するのかを調べることができます。環境変数が全く設定されていない状態で指定したコマンドを実行することも可能です。
引数を一切付けずに実行すると、現在指定されている環境変数を一覧表示します。引数を付けずに実行したprintenvコマンド(第173回)と同じ動作になります ※1。
※1 シェル変数の一覧を表示するには、ビルトインコマンドであるsetコマンドに引数を付けずに用いる。
envコマンドの書式
env [オプション] [環境変数名=値 ……] [コマンド]
※[ ]は省略可能な引数を示しています。
envの主なオプション
短いオプション | 長いオプション | 意味 |
---|---|---|
-i,- | --ignore-environment | 環境変数が設定されていない状態でコマンドを実行する |
-u 変数名 | --unset=変数名 | 指定した環境変数が設定されていない状態でコマンドを実行する |
-0 | --null | 改行しない(出力行の末尾を改行文字ではなくNULL文字にする、一覧表示する際のみ指定可能) |
環境変数を一時的に設定してコマンドを実行する
「env 環境変数名=値 コマンド」で、環境変数に特定の値を指定しつつ、コマンドを実行します。例えば「env LANG=C date」では、環境変数LANGに「C」を設定した状態でdateコマンドを実行します(画面1)。
注意しなければならないのは、envコマンドが指定した環境変数の値を一時的に変えていることです。このため、envコマンドの実行前後で、環境変数の値は変わりません。
bashの場合、envコマンドを使わずに「LANG=C date」とした場合でも、環境変数LANGに「C」を設定した状態でdateコマンドを実行できます(この場合も環境変数の値を一時的に変えています)。
envコマンドは外部コマンドなので、対応しているのは環境変数と外部コマンドだけですが、bashで利用できる「変数名=値 コマンド」の場合、さらにビルトインコマンドも実行できます。
コマンド実行例
env 環境変数名=値 コマンド
(環境変数に値を一時的にセットしてからコマンドを実行する)
env LANG=C date
(環境変数LANGに値Cをセットしてからdateコマンドを実行する)(画面1)
環境変数を設定していない状態でコマンドを実行する
「env -u 環境変数名 コマンド」では、指定した環境変数が設定されていない状態でコマンドを実行できます(画面2)。
「env -i コマンド」または「env - コマンド」では、全ての環境変数が設定されていない状態でコマンドを実行します。
コマンド実行例
env -u 環境変数名 コマンド
(指定した環境変数を設定していない状態でコマンドを実行する)(画面2)
env - コマンド
(全ての環境変数を設定していない状態でコマンドを実行する)(画面2)
筆者紹介
西村 めぐみ(にしむら めぐみ)
PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『Accessではじめるデータベース超入門[改訂2版]』『macOSコマンド入門』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.