Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
export / env / printenv
『export』はシェル変数を環境変数として子プロセスに引き継ぎます。『env』『printenv』で現在の環境変数一覧を確認できます。プログラムの動作を制御する『$PATH』『$HOME』『$USER』などもここで設定・確認します。
構文
# 変数を環境変数として export する export 変数名=値 export 変数名 # 既に定義済みの変数を export する # 環境変数の一覧を表示 env printenv # 特定の環境変数を表示 printenv 変数名 echo $変数名 # コマンド実行時だけ環境変数を設定する 変数名=値 コマンド
コマンド・変数一覧
| コマンド/変数 | 概要 |
|---|---|
| export VAR=value | 変数を定義して環境変数として設定します。 |
| export VAR | 既存のシェル変数を環境変数として公開します。 |
| env | 現在の環境変数を一覧表示します。 |
| printenv | 環境変数を一覧表示します(env と同様)。 |
| printenv VAR | 指定した環境変数の値だけを表示します。 |
| unset VAR | 環境変数を削除します。 |
| $PATH | コマンドを検索するディレクトリ一覧(: 区切り)です。 |
| $HOME | 現在のユーザーのホームディレクトリのパスです。 |
| $USER | 現在ログインしているユーザー名です。 |
| $SHELL | 現在使用しているシェルのパスです。 |
| $PWD | 現在の作業ディレクトリのパスです。 |
| $LANG | 現在のロケール設定です。 |
サンプルコード
『export』で環境変数を設定して確認します。
export APP_ENV=production export DB_HOST=localhost echo "APP_ENV: $APP_ENV" echo "DB_HOST: $DB_HOST"
APP_ENV: production DB_HOST: localhost
既存のシェル変数をあとから『export』で環境変数にすることもできます。
VERSION="1.2.3" export VERSION echo "VERSION: $VERSION"
VERSION: 1.2.3
代表的な環境変数を確認します。
echo "ユーザー: $USER" echo "ホーム: $HOME" echo "シェル: $SHELL" echo "現在地: $PWD"
ユーザー: alice ホーム: /home/alice シェル: /bin/bash 現在地: /home/alice/project
『$PATH』に新しいディレクトリを追加します。既存値を保持しながら先頭に追加するのがお約束です。
export PATH="$HOME/bin:$PATH" echo "PATH の先頭: $(echo $PATH | cut -d: -f1)"
PATH の先頭: /home/alice/bin
コマンド実行時だけ環境変数を設定します。スクリプト全体には影響しません。
LANG=C ls --help 2>&1 | head -1
Usage: ls [OPTION]... [FILE]...
『printenv』で特定の環境変数の値だけを確認します。
printenv HOME printenv SHELL
/home/alice /bin/bash
概要
シェル変数はそのシェルの中だけで有効ですが、『export』すると子プロセス(サブシェル・外部コマンド)にも引き継がれます。設定ファイル(~/.bashrc や ~/.bash_profile)に export を書いておくことで、起動するたびに自動的に環境変数が設定されます。
『$PATH』の追加は export PATH="$HOME/bin:$PATH" のように既存値を保持しながら先頭に追加するのがお約束です。上書きすると標準コマンドが実行できなくなります。
変数の定義と参照の基本は 変数の定義と参照 を参照してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。