UNIX/Linuxの部屋 exportコマンドの使い方

TOP UNIX/Linuxの部屋 UNIX/Linuxコマンド一覧 用語集 新版 由来/読み方辞書 環境変数マニュアル Cシェル変数 システム設定ファイル システムコール・ライブラリ ネットワークプログラミングの基礎知識 クラウドサービス徹底比較・徹底解説




コマンド export 環境変数を設定・定義・更新する。sh・bash の内部コマンド。 このエントリーをはてなブックマークに追加

最終更新


UNIX/Linux の export コマンドは、環境変数を設定・定義・更新する sh・bash の内部コマンドである。csh・tcsh で環境変数を設定する場合、export コマンドではなく setenv コマンドを使うことに注意。



環境変数の設定方法
sh・bash にて環境変数を設定するには、まずシェル変数をセットし、その後に export コマンドを実行するやり方が一般的である。
% FOO="BAR"
% export FOO
セミコロンでつなげて一行で書くのもよくある書き方である。
% FOO="BAR"; export FOO

bash や FreeBSD の sh (ash) では、export の引数に代入文を渡すことで環境変数の設定が可能である。
export FOO="BAR"
ただし、Solaris や HP-UX などの由緒正しい (≒古い) sh では上記のようなやり方はエラーとなる。移植性を重視する場合は一度シェル変数に値をセットしてから export を実行することをお勧めする。なお、IEEE Std 1003.1 2001 Edition において、export FOO="BAR" 方式を許容する旨追記されたため、最近の UNIX を標榜するのであれば、この書き方は実行可能であるべきである。

変数設定と export の順序
export コマンドというのは、「この変数を環境変数として外部公開するという印を付ける」という意味であるため、最初に export でマークして、後から変数設定を行なっても全く問題ない。
% export FOO
% FOO="BAR"

PATH の更新方法
export コマンドを使って環境変数 PATH を更新する方法を以下に示す。
% PATH="${PATH}:/usr/local/sbin"
% export PATH
→ PATH 末尾に /usr/local/sbin を追加。
% PATH="${PATH}:${HOME}/bin"
% export PATH
→ PATH 末尾に $HOME/bin を追加。

環境変数 PATH 自体の説明やリスクは下記を参照してほしい。

環境変数の削除方法
export した環境変数を削除するには unset コマンドを使う。
$ FOO="BAR"
$ export FOO
$ printenv FOO
BAR
⇒ FOO=BAR であることがわかる
$ unset FOO
$ printenv FOO
⇒ 何も表示されない (環境変数が削除されたということ)

変数としては残したまま、「この変数を環境変数として外部公開するという印」を外す場合、bash であれば export に -n オプションを付ける。一般的な sh では使えない模様。
$ HOGE=abc
$ export HOGE
→ 変数 HOGE を設定し、環境変数として export
$ printenv HOGE
abc
→ 環境変数として認識されている
$ export -n HOGE
→ export -n で「環境変数の印」を外す
% echo $HOGE
abc
→ 変数としては残っている
% printenv HOGE
→ 環境変数としては表示されない

関連コマンド
(sh・bash ではなく) csh・tcsh で環境変数を設定するには setnev コマンドを使用する。