Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

  1. トップページ
  2. Bash辞典
  3. export / env / printenv

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" のように既存値を保持しながら先頭に追加するのがお約束です。上書きすると標準コマンドが実行できなくなります。

変数の定義と参照の基本は 変数の定義と参照 を参照してください。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。