シェル変数と環境変数
シェル変数
- 実行中のシェル内でのみ有効な変数
- 子プロセスには引き継がれない
利用例
$ SHELL_VAR=value
$ echo $SHELL_VAR
環境変数
- 実行中のシェル内、および子プロセスで有効な変数
利用例
$ ENV_VAR=value
$ export ENV_VAR # または export ENV_VAR=value として一行で書くことも可能
$ echo $ENV_VAR
env/export/printenv/setコマンドの違い
コマンド | シェル変数 | 環境変数 | 説明 |
---|---|---|---|
env | - | ✓ | 実行対象のコマンドに一時的な環境変数を設定して実行 |
export | - | ✓ | 環境変数の定義を行う |
printenv | - | ✓ | 環境変数の一覧を表示 |
set | ✓ | ✓ | シェル変数と環境変数の一覧を表示 |
コマンドの特徴
-
env
コマンド- 一時的な環境を設定してコマンドを実行
- 例えば、
env PATH=/usr/local/bin:$PATH some_command
とすることで、some_command
を実行する際にPATH
を一時的に変更できる
- 例えば、
- 一時的な環境を設定してコマンドを実行
-
export
コマンド- シェル変数を環境変数に変換
- 例えば、
export VAR=value
とすることで、VAR
が環境変数として子プロセスにも引き継がれるようになる
- 例えば、
- シェル変数を環境変数に変換
-
printenv
コマンド- 現在の環境変数を一覧表示
- デバッグやシステムの設定確認に便利
- 現在の環境変数を一覧表示
-
set
コマンド- 現在のシェル変数と環境変数を一覧表示
- スクリプトのデバッグに有用
- 現在のシェル変数と環境変数を一覧表示