UNIX シェル変数と環境変数について

UNIXコマンド テキスト処理を色々試してみた2 〜AWK〜 - oknknicの日記」に引き続きUNIXコマンドネタ。
Bシェル系における変数について整理。
動作確認はFedorabash環境にて。

シェル変数と環境変数

  • シェル変数:そのシェル内でのみ有効な変数
  • 環境変数 :そのシェル内と、シェルから実行したコマンド内で有効な変数

変数一覧表示

  • set : シェル変数の表示(引数なしで実行した場合)
  • env : 環境変数の表示(引数なしで実行した場合。printenvと同じ内容)

変数の設定

シェル変数の設定、削除
SHELL_VAR=VAL
unset SHELL_VAR
シェル変数を環境変数にエクスポート
export SHELL_VAR

なお、 環境変数 ⊆ シェル変数 のようである。
(実行中のシェルにおいて、シェル変数と環境変数の値は区別されない)

補足

.bash_profile の内容が、

HOGE=test
export HOGE

の場合は、以下の結果となる。

$ set | grep HOGE
HOGE=test
$ env | grep HOGE
HOGE=test
$

.bash_profile の内容が、

HOGE=test

の場合は、以下の結果となる。

$ set | grep HOGE
HOGE=test
$ env | grep HOGE
$