環境変数 【environment variables】
概要
環境変数(environment variables)とは、オペレーティングシステム(OS)が設定値などを永続的に保存し、利用者や実行されるプログラムから設定・参照できるようにしたもの。プログラムの実行時などに必要となる、利用者やコンピュータごとに内容が異なる設定値などを記録するために用いられる。環境変数は変数名と設定値からなり、OSに変数名を指定すると対応する現在の設定値を返す。多くはOSが自動的に設定するか、アプリケーションがインストール時などに設定するが、利用者がシェルによる操作で明示的に作成・変更できるものもある。
例えば、プログラム上で時刻を扱う際に現在位置の標準時が必要になることがあるが、開発時には世界のどこで使われるかあらかじめ決め打ちできない場合もあるため、実行時に現在位置を取得する仕組みが必要になる。
このような場合に、現在地の標準時(タイムゾーン)が設定された「TZ」環境変数をOSに問い合わせて参照するようなコードにしておけば、実行時にコンピュータの設定に応じて時刻処理を行えるようになる。
UNIX系OSの環境変数
LinuxなどのUNIX系OSでは、標準コマンドなどの置かれているパス(path)を設定する「PATH」や、現在の利用者のアカウント名を表す「USER」、現在の利用者のホームディレクトリのパスを表す「HOME」、利用者の使う言語(日本語、英語など)を設定する「LANG」、カレントディレクトリを表す「PWD」、デフォルトのシェルのパスを指定する「SHELL」などがよく用いられる。
UNIX系OSでは環境変数によく似た「シェル変数」も用意されている。これはシェルが独自に保管する設定値で、環境変数と同じように作成や値の代入、読み出しなどを行うことができる。現在実行中のシェル以外から操作することはできず、シェルを新たに起動したりシステムを再起動すると失われる。
シェルで「変数名 値」を実行すると変数の作成や代入を行うことができるが、これは通常シェル変数となる。環境変数として永続的に保存したい場合はexportコマンド(bashなど)やsetenvコマンド(csh)を用いて「export 変数名 値」のようにする。
Windowsの環境変数
Windowsでは「PATH」などUNIX系と共通のものに加え、システムドライブを表す「SystemDrive」、Windowsフォルダを表す「WINDIR」、実行可能なファイルの拡張子を列挙した「PATHEXT」、一時フォルダのパスを指定する「TEMP」、コマンドプロンプトの形式を指定する「PROMPT」、設定されたコンピュータ名を表す「COMPUTERNAME」などが用意されている。
UNIX系と同じようにコマンドプロンプトから変数の作成や値の代入、表示などを指示できる。setコマンドで一時的な変数の作成や変更ができ、setxコマンドで永続的な変数の作成や編集ができる。コントロールパネルで変数の一覧や永続的な変更を行うこともできる。