環境変数
環境変数はシェル自身と、そのシェルから起動されるすべての新規シェルで有効となる変数です。
例えば、Linuxにおいて馴染みのある環境変数は「PATH」や「HOME」等が挙げられます。
この2つの変数は最初から自動的に環境変数として読み込まれているため値を利用することが出来ます。
シェル変数
シェル変数はそのシェル内のみ利用できる変数です。
シェル変数を環境変数にしたい場合は後述の「export」コマンドを利用します。
変数の使用方法
シェル変数を扱う方法を以下に記述します。
VAR1=1 # シェル変数を定義
echo $VAR1 # シェル変数を標準出力
またシェル変数はexportコマンドを利用することによってシェル変数を環境変数にすることが出来ます。
シェル変数を環境変数にする方法を以下に記述します。
export VAR1 # シェル変数を環境変数に変更
echo $VAR1 # 環境変数を標準出力
環境変数はシェル変数を介さずとも以下のように定義することが出来ます。
export VAR1=1 # 環境変数を定義
echo $VAR1 # 環境変数を標準出力
変数の使い分け
- シェルの中だけで使う変数ならシェル変数を使う:
短期間、シェルスクリプトや対話型シェル内でだけ使用する場合は、シェル変数で十分です。 - 他のプログラムや子プロセスで使いたい場合は環境変数を使う:
プログラム全体で利用される設定値や、複数のプロセス間で共有したい値がある場合は、環境変数としてエクスポートする必要があります。 - 環境設定やシステム設定には環境変数を使う:
システムの設定やパス設定など、複数のプログラムやプロセスで必要となる情報は、通常環境変数として設定します。 - スクリプト内での使い分け:
シェルスクリプトを書くときは、基本的にスクリプト内でのみ使う変数はシェル変数として使用し、外部プログラムや他のスクリプトからもアクセスしたい編素は環境変数にするのが一般的です。
まとめ
私的に使い分けを簡単に考えると
- 複数の箇所(別シェル)から参照されそう→環境変数
- この空間(シェル内)でしか使わなそう→シェル変数
となります。
「環境変数はグローバル変数でシェル変数はローカル変数なんだ」くらいの認識で良いと思います。
ご覧いただきありがとうございました。