シェル変数と環境変数

 シェルの動作(振る舞い)を設定するためには,シェル変数あるいは環境変数を用います*15

 シェル変数は現在実行中のシェルだけで有効な変数ですが,環境変数はシェルから実行したコマンドにも引き継がれる変数です。シェル変数および環境変数にはあらかじめ役割が決められているものと,ユーザーが自分で役割を決めるものがあります。

 bashでは,シェル変数と環境変数はほとんど一体化して扱われており,シェル変数をエクスポート(外部に公開)すると環境変数になります。

 一方,tcshでは,シェル変数と環境変数を別の変数として扱い,変数に値を設定するコマンドも異なります。

●bashの場合

 シェル変数varに値「example」を設定したい場合には,

と入力します*16

 このシェル変数を環境変数にしたい場合には,

と入力します*17。シェル変数varを参照するには${var}と記述しますが,これについては次回に述べます。

 シェル変数を削除するには,unsetコマンドを利用します。これで,設定値ではなく,変数自体を削除します。

現在設定されているシェル変数の一覧を出力するには,

と入力します。特定のシェル変数の設定値だけを出力したい場合には,次の例のように

と入力します。シェル変数を参照しますので,変数名の前に「$」を付加するのを忘れないようにします。

 また,設定されている環境変数の一覧を出力するには,

と入力します。

 特定の環境変数の設定値を出力したい場合には,引数に変数名を指定します。

●tcshの場合

 シェル変数varに値「example」を設定したい場合には,

と入力します(bashとは異なり,内部コマンドsetで設定します)。

 シェル変数を削除するには,unsetコマンドを利用します。ここでも,設定値ではなく,変数自体を削除します。具体例は次のようになります。

現在設定されているシェル変数の一覧を出力するには,

と入力します。

 環境変数VARに値「example」を設定したい場合には,

と入力します(シェル変数の設定とは異なり,「=」は使いません)。

 また,設定されている環境変数の一覧を出力するには,

と入力します。特定の環境変数の設定値を出力したい場合には,引数に変数名を指定します。環境変数を削除したい場合には,unsetenvコマンドを利用します。例えば,環境変数VARを削除するには,

と入力します。

 具体的なシェル変数については,別掲記事「代表的なシェル変数」を参照してください。