環境変数ってなに?

環境変数ってなに?



 環境変数は、本来オペレーティングシステムの機能で、OLBCKの機能ではありませんが、OLBCKを使う上で知っておいていただかなければならないものなので、簡単に説明しておきます。たとえば、WindowsのMS-DOSボックスで次のコマンドを入力してみてください。

C:> SET

UNIXなら、次のように入力してください。

% setenv

すると、Windows 95 MS-DOSボックスなら、たとえば次のような内容が画面に出力されるはずです。

winbootdir=C:\WIN95
PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;D:\WINDOWS\SYSTEM
PROMPT=$p$g
COMSPEC=c:\command.com
TMP=c:\tmp
windir=C:\WIN95
TEMP=C:\tmp
CMDLINE=perl -Sx g_body.bat

UNIXなら、たとえば次のようになるでしょう。


=の右側が変数名で右側が値です。このなかでMS-DOSでもUNIXでも特に重要な意味を持つものの1つが、PATH変数です。環境変数PATHの値は、“;”で区切られたディレクトリのリストです。ここでリストアップされたディレクトリ以外のディレクトリに格納されたプログラムファイル(実行可能ファイル)は、実行できる形式、条件を備えていても、コマンド行からは実行できません(ただし、MS-DOSの場合は、カレントディレクトリのプログラムは無条件で実行できます)。perl.exeとperlスクリプトファイル(及びバッチファイル、シェルスクリプトファイル)をここで指定されたディレクトリのどれかに格納してくださいというのは、そのためです。
 環境変数は、MS-DOSなら、コマンド行で次のように入力すれば設定できます。

C:>SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;D:\WINDOWS\SYSTEM;C:\BIN

PATH変数については、次のような設定方法もあります。

C:>PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;D:\WINDOWS\SYSTEM;C:\BIN

設定を変更する場合、前の設定もすべて設定し直す必要があります。たとえば、上の行は、先ほどの一覧で表示されたPATHの内容にC:\BINというディレクトリを追加しようとしていますが、以前の設定に含まれていたC:\WIN95などのディレクトリも合わせて設定しています。これを忘れると、それまで実行できていたプログラムが突然実行できなくなって慌てることになります。なお、PATHとCの間の=の両側にはスペースを入れないようにしてください。スペースを入れた方が見やすいのは確かですが、正しく設定されなくなります。また、上に示したように、かならずドライブ名からディレクトリに達するまでのすべての経路を記述した形式(フルパス)を指定するようにしてください。たとえば、ドライブ名を省略すると、あるドライブでは実行できるのに、別のドライブに移ると実行できないプログラムができてしまいます。
 UNIXの場合、環境変数は、次のようにして設定します。

% setenv PATH ~/bin;/usr/local/bin;/usr/bin;/bin

MS-DOSの場合のように“=”を入れる必要はありませんし、入れるとエラーになります。
 さて、コンピュータを起動するたびに(UNIXの場合ならログインするたびに)、SET、setenvコマンドを実行するのでは面倒です。そこで、環境変数は、起動時に自動的に実行されるファイル(MS-DOSならAUTOEXEC.BAT、UNIXなら~/.login)で設定するのが通例です(Windows NTの場合にはコントロールパネルの“システム”アプレットで設定します)。MS-DOSの場合、システムや市販アプリケーションが作ったAUTOEXEC.BATに特に手を入れていなければ、PATHの内容はWindowsやそのサブディレクトリ、市販アプリケーションの専用ディレクトリなどだけから構成されています。perl.exeやスクリプトバッチファイルは、これらのディレクトリに格納されているファイルとは性質が異なりますので、先ほど示したC:\BINのようなディレクトリを新たに作成して、そこに格納した方がよいでしょう。そして、テキストエディタ(Windowsのメモ帳など)で起動ドライブのAUTOEXEC.BATをオープンしてPATH設定行の末尾に;C:\BINを追加するわけです。面倒かもしれませんが、1度きちんとしてしまえば、あとはずっと忘れていられる作業なので、辛抱して実行してください。
 UNIXの場合には、たいていシステム管理者がユーザーのホームディレクトリにbinディレクトリを作って、そこにPATHを通しておいてくれているはずですから(まぁ、一応setenvコマンドを実行して確認してください)、そこにスクリプトファイルを格納してください。なお、よほど古いシステムでない限り、perlは最初からインストールされているはずです。