言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理に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』で環境変数を設定して確認します。

env_setup.sh
export APP_ENV=production
export DB_HOST=localhost
echo "APP_ENV: $APP_ENV"
echo "DB_HOST: $DB_HOST"
bash env_setup.sh
APP_ENV: production
DB_HOST: localhost

既存のシェル変数をあとから『export』で環境変数にすることもできます。

export_later.sh
VERSION="1.2.3"
export VERSION
echo "VERSION: $VERSION"
bash export_later.sh
VERSION: 1.2.3

代表的な環境変数を確認します。

show_env.sh
echo "ユーザー: $USER"
echo "ホーム: $HOME"
echo "シェル: $SHELL"
echo "現在地: $PWD"
bash show_env.sh
ユーザー: alice
ホーム: /home/alice
シェル: /bin/bash
現在地: /home/alice/project

『$PATH』に新しいディレクトリを追加します。既存値を保持しながら先頭に追加するのがお約束です。

path_add.sh
export PATH="$HOME/bin:$PATH"
echo "PATH の先頭: $(echo $PATH | cut -d: -f1)"
bash path_add.sh
PATH の先頭: /home/alice/bin

コマンド実行時だけ環境変数を設定します。スクリプト全体には影響しません。

LANG=C ls --help 2>&1 | head -1
Usage: ls [OPTION]... [FILE]...

『printenv』で特定の環境変数の値だけを確認します。

printenv HOME
/home/alice
printenv SHELL
/bin/bash

概要

シェル変数はそのシェルの中だけで有効ですが、『export』すると子プロセス(サブシェル・外部コマンド)にも引き継がれます。設定ファイル(~/.bashrc や ~/.bash_profile)に export を書いておくことで、起動するたびに自動的に環境変数が設定されます。

$PATH』の追加は『$ export PATH="$HOME/bin:$PATH"』のように既存値を保持しながら先頭に追加するのがお約束です。上書きすると標準コマンドが実行できなくなります。

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

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