環境変数


環境変数【Environment variables】は、あなたのアプリケーションを動的に設定するための、もう一つのやり方です。多くのアプリケーションとシステムは、実行可能プログラムやヘッダファイルの位置などといった、重要な情報を記録するために環境変数を使用します。

変数は、変数の名前であるキー文字列と、値文字列から構成されます。

環境変数の対象範囲

環境変数は、その変数を作成したプロセスと、そのすべての子プロセスを対象範囲とします。

ターミナル アプリケーションは、各ウインドウを、環境変数を管理するために自らが所有する独立したプロセスとして扱います。そのため、もしあなたがターミナルのウインドウを作成し、何らかの環境変数を定義すると、あなたがそのウインドウから実行したどのプログラムも、これらの変数を引き継ぎます。

けれども、あなたは二番目のターミナルウインドウから最初のターミナルウインドウで定義した変数にアクセスすることはできませんし、その逆も同様です。

セッションは引き継がれることがあります。たとえば、ユーザがログインしたとき、システムはユーザセッションを作成し、環境変数の標準的なセットを定義します。そのセッションの間にユーザによって起動されたプロセスは、いずれもユーザ環境変数を引き継ぎます。

けれども、この引継ぎは読み取り専用の関係にあります。プロセスによって行われた変数へのあらゆる変更は、そのプロセスに限り留まりますが、他のプロセスには引き継がれません。

ユーザセッション環境変数

Mac OS X は、現在のユーザセッションを対象範囲とした環境変数の定義に対応しています。

ログイン時に、ログインウインドウ アプリケーションは environment.plist という名前の特別なプロパティリスト ファイルを探します。このファイルはユーザのホームディレクトリのルートにある、.MacOSX と呼ばれるディレクトリ内に配置する必要があります。

このファイルのパスは以下の通りです…

~/.MacOSX/environment.plist

もし environment.plist ファイルが存在していたら、ログインウインドウはルート要素の子であるキーを見つけます。これらのキーのそれぞれに対して、ログインウインドウは同じ名前の環境変数を登録し、そのキーの値を割り当てます。

このファイルは環境変数の定義のみに対応しています。あなたは他の形式のスクリプトコードを実行するために、このファイルを用いることはできません。

このファイルの形式は、他のプロパティリスト ファイルと同じく XML 形式であり、ファイル内の各キーごとに文字列の値を持ちます。たとえば、Property List アプリケーションで開いた場合、このようなプロパティリスト ファイルは以下のように見えるでしょう…

(Property List アプリケーション画面)
▼Root                                Dictionary ◆ 2 key/value pairs
    MyBooleanEnvironmentVariable      String     ◆ YES
    MyIntegerEnvironmentVariable      String     ◆ 42

アプリケーション固有の環境変数

アプリケーションに対して利用可能な環境変数を作成する方法は二つあります。

一つ目は、ターミナルのセッションにおいて変数を定義し、その同じセッションからアプリケーションを起動する方法です。ターミナルから起動されたとき、アプリケーションは、そのセッションで定義されたあらゆる環境変数も含めて、セッションの設定を引き継ぎます。

環境変数をアプリケーションに関連付ける二番目の方法は、アプリケーションのインフォメーションプロパティリスト ファイル内に LSEnvironment キー【これ】を含めることです。

LSEnvironment キーは、環境変数とその値を表す、好きなだけの数のキーと値の組み合わせをあなたに定義させます。これはアプリケーションのインフォメーションプロパティリスト ファイルを変更することを必要とするため、このキーはあまり頻繁に変更しないオプションのために使用するのが最適です。

このキーを使用する上での詳細情報は、「プロパティリスト キー リファレンス」(15ページ)を参照してください。