Macの「ターミナル」で環境変数を使用する
シェルは、環境変数を使用して、現在のユーザの名前、ホストコンピュータの名前、およびコマンドへのデフォルトのパスなどの情報を保存します。環境変数は、そのシェルのコンテキスト内で実行されるすべてのコマンドによって継承されます。また、一部のコマンドは環境変数に依存します。
環境変数を作成してそれを使用することで、コマンド自体を変更しなくてもコマンドの挙動を制御できます。たとえば、環境変数を使用して、コマンドによってコンソールにデバッグ情報を出力することができます。
環境変数の値を設定するには、適切なシェルコマンドを使用して、変数名と値を関連付けます。たとえば、変数PATHを値「/bin:/sbin:/user/bin:/user/sbin:/system/Library/
」に設定するには、「ターミナル」ウインドウで以下のコマンドを入力します:
% PATH=/bin:/sbin:/user/bin:/user/sbin:/system/Library/ export PATH
すべての環境変数を表示するには、以下を入力します:
% env
シェルからアプリケーションを起動すると、そのアプリケーションには、書き出された環境変数を含む、シェルの環境のほとんどが継承されます。こうした継承方式は、アプリケーションを動的に構成する場合に便利です。たとえば、アプリケーションは環境変数の有無(またはその値)を確認できるため、それに応じて挙動を変えることができます。
環境変数を書き出すためのセマンティクスは、シェルによって異なります。詳しくは、目的のシェルのマニュアルページ(manで表示)を参照してください。
シェルの子プロセスはそのシェルの環境を継承しますが、シェルは独立した実行コンテキストであり、環境情報を互いに共有するわけではありません。1つの「ターミナル」ウインドウで設定した変数は、ほかの「ターミナル」ウインドウでは設定されません。
「ターミナル」ウインドウを閉じると、そのウインドウで設定した変数は使用できなくなります。変数の値をセッション間やすべての「ターミナル」ウインドウで保持したい場合は、シェル起動スクリプトで設定する必要があります。zshシェル起動スクリプトを変更して複数のセッション間で変数などの設定を保持する方法については、zshのマニュアルページ(manで表示)の「Invocation(起動)」セクションを参照してください。