'\" te .\" Copyright 1989 AT&T .\" Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved. .TH environ 5 "2011 年 5 月 7 日" "SunOS 5.11" "標準、環境、マクロ" .SH 名前 environ \- ユーザー環境 .SH 機能説明 .sp .LP プロセスの実行を開始すると、\fBexec\fR 関数のファミリの中の 1 つが環境と 呼ばれる文字列の配列を用意します (\fBexec\fR(2) を参照)。規約上、これらの文字列は \fIvariable (変数) = value\fR (値) という形式をとります (たとえば、\fBPATH=/sbin:/usr/sbin\fR)。この環境変数により、プログラムはプログラムの環境に関する情報を利用できるようになります。 .sp .LP 環境中に名前を設定するには、\fBsh\fR(1) における \fIname\fR=\fIvalue\fR 引数と \fBexport\fR コマンドを使用するか、あるいは \fBexec\fR 関数のうちの 1 つを使用します。\fB\&.profile\fR ファイル内でエクスポートされる \fBMAIL\fR、\fBPS1\fR、\fBPS2\fR、\fBIFS\fR などのシェル変数と環境変数との間で矛盾を生じさせるのは避けてください。詳細は \fBprofile\fR(4) を参照してください。 .sp .LP アプリケーションが利用できる環境変数を以下に示します。これらの変数は、実行環境において設定されていることが期待されています。 .sp .ne 2 .mk .na \fB\fBHOME\fR\fR .ad .sp .6 .RS 4n ユーザーのログインディレクトリ名。パスワードファイル (\fBpasswd\fR(4) を参照) に基づいて \fBlogin\fR(1) が設定します。 .RE .sp .ne 2 .mk .na \fB\fBLANG\fR\fR .ad .sp .6 .RS 4n 国際化情報を指定するのに用いる文字列。ユーザーはこの情報を利用して、さまざまな国の慣習に従って作業を進めることができます。\fBsetlocale\fR(3C) 関数の引数 \fBlocale\fR に \fB""\fR を設定して呼び出すと、この関数は環境変数 \fBLANG\fR を調べます。特定のカテゴリに対する環境変数が設定されていない、あるいは NULL に設定されている場合は、\fBLANG\fR がデフォルト時のロケールとして使用されます。ただし \fBLC_ALL\fR が空文字列でない正当な値に設定されていれば、変数 \fBLANG\fR やほかの \fBLC_*\fR 変数の代わりにその値が使用されます。たとえば、\fBsetlocale(LC_CTYPE, "")\fR のように呼び出されると、\fBsetlocale()\fR は、まず環境変数 \fBLC_CTYPE\fR が設定されていて NULL でないことを問い合わせます。\fBLC_CTYPE\fR が未設定または NULL の場合は、\fBsetlocale()\fR は次に環境変数 \fBLANG\fR を調べて、それが設定されていて NULL でないことを確認します。\fBLANG\fR と \fBLC_CTYPE\fR の両方が未設定または \fINULL\fR の場合、デフォルトの C ロケールを使用して \fBLC_CTYPE\fR カテゴリを設定します。 .sp ほとんどのコマンドは、ほかの処理を行う前に \fBsetlocale(LC_ALL, "")\fR を呼び出します。この関数を用いて適切な環境変数を設定することにより、コマンドをさまざまな国の慣習に従って使用できるようになります。 .sp 以下に示す環境変数が各カテゴリの \fBsetlocale\fR(3C) と対応しています。 .sp .ne 2 .mk .na \fB\fBLC_ALL\fR\fR .ad .sp .6 .RS 4n 空文字列でない正当な値に設定されていれば、\fBLANG\fR およびすべての \fBLC_*\fR 変数の値に代わって使用されます。 .RE .sp .ne 2 .mk .na \fB\fBLC_COLLATE\fR\fR .ad .sp .6 .RS 4n 使用する文字照合順序を指定します。このカテゴリにあてはまる情報は、\fBlocaledef\fR(1) コマンドによって作成されるデータベース内に格納されています。この環境変数は \fBstrcoll\fR(3C) および \fBstrxfrm\fR(3C) に影響を及ぼします。 .RE .sp .ne 2 .mk .na \fB\fBLC_CTYPE\fR\fR .ad .sp .6 .RS 4n 文字分類、文字変換および複数バイト文字の幅を指定します。\fBLC_CTYPE\fR が正当な値に設定されていると、呼び出し側のユーティリティーは、該当するロケールに合った文字を含んでいるテキストやファイル名を表示したり処理したりできます。例: 各文字の幅が 1 から 3 バイトの拡張 UNIX コード (EUC) 文字、およびカラム幅が 1 から 3 の EUC 文字。デフォルトの C ロケールは、7 ビットの \fBASCII\fR 文字セットに対応していて、ISO 8859-1 の文字だけが有効です。このカテゴリにあてはまる情報は、\fBlocaledef()\fR コマンドによって作成されるデータベース内に格納されています。\fBctype\fR(3C)、\fBmblen\fR(3C)、および他の多くのコマンド (たとえば、\fBcat\fR(1)、\fBed\fR(1)、\fBls\fR(1)、\fBvi\fR(1)) がこの環境変数を使用します。 .RE .sp .ne 2 .mk .na \fB\fBLC_MESSAGES\fR\fR .ad .sp .6 .RS 4n 使用するメッセージデータベースの言語を指定します。たとえば、アプリケーションは、フランス語用のメッセージデータベースとドイツ語用のメッセージデータベースを使い分けることができます。メッセージデータベースは、\fBmkmsgs\fR(1) コマンドで作成します。\fBexstr\fR(1)、\fBgettxt\fR(1)、\fBsrchtxt\fR(1)、\fBgettxt\fR(3C)、\fBgettext\fR(3C) がこの環境変数を使用します。 .RE .sp .ne 2 .mk .na \fB\fBLC_MONETARY\fR\fR .ad .sp .6 .RS 4n 特定のロケールで使用する通貨記号および区切り記号を指定します。このカテゴリにあてはまる情報は、\fBlocaledef\fR(1) コマンドによって作成されるデータベース内に格納されています。\fBlocaleconv\fR(3C) がこの環境変数を使用します。 .RE .sp .ne 2 .mk .na \fB\fBLC_NUMERIC\fR\fR .ad .sp .6 .RS 4n 小数点および千の位の区切り記号を指定します。このカテゴリにあてはまる情報は、\fBlocaledef()\fR コマンドによって作成されるデータベース内に格納されています。デフォルト値の \fBC\fR ロケールは、小数点にピリオド (\fB\&.\fR) を指定し、千の位の区切り記号は指定しません。\fBlocaleconv\fR(3C)、\fBprintf\fR(3C)、\fBstrtod\fR(3C) がこの環境変数を使用します。 .RE .sp .ne 2 .mk .na \fB\fBLC_TIME\fR\fR .ad .sp .6 .RS 4n 日付と時間の書式を指定します。このカテゴリにあてはまる情報は、\fBlocaledef()\fR で指定されるデータベース内に格納されています。デフォルト値の \fBC\fR ロケールは、アメリカ合衆国の日付と時間の書式に対応しています。多くのコマンドおよび関数がこの環境変数を使用します。例: \fBat\fR(1)、\fBcalendar\fR(1)、\fBdate\fR(1)、\fBstrftime\fR(3C)、\fBgetdate\fR(3C) などです。 .RE .RE .sp .ne 2 .mk .na \fB\fBMSGVERB\fR\fR .ad .sp .6 .RS 4n \fBstderr\fR にメッセージを表示するとき、\fBfmtmsg\fR がどの標準書式メッセージコンポーネントを使用するかを制御します (\fBfmtmsg\fR(1) および \fBfmtmsg\fR(3C) を参照)。 .RE .sp .ne 2 .mk .na \fB\fBNETPATH\fR\fR .ad .sp .6 .RS 4n コロンで区切られたネットワーク識別子のリストです。ネットワーク識別子とは、システムの「ネットワーク選択」コンポーネントが、アプリケーション固有のデフォルトのネットワーク検索パスを提供するために 使用する文字列です。ネットワーク識別子は、NULL 以外の文字からなり、長さは 1 以上である必要があります。最大長は制限されていません。通常は、システム管理者が ネットワーク識別子を選択します。ネットワーク識別子は、\fB/etc/netconfig\fR ファイルのすべての記述項の最初のフィールドでもあります。したがって \fBNETPATH\fR は、\fB/etc/netconfig\fR ファイルへのリンクおよびそのファイルのネットワーク記述項に入っているネットワークに関する情報を提供します。\fB/etc/netconfig\fR は、システム管理者によって維持されます。\fBgetnetpath\fR(3NSL) で説明したライブラリルーチンが、\fBNETPATH\fR 環境変数にアクセスします。 .RE .sp .ne 2 .mk .na \fB\fBNLSPATH\fR\fR .ad .sp .6 .RS 4n メッセージカタログを見つけるために \fBcatopen\fR(3C) と \fBgettext\fR(3C) が使用する、一連のテンプレートを指定します。各テンプレートは、オプションの接頭辞、1 つまたは複数の置換フィールド、ファイル名、およびオプションの接尾辞からなります。例: .sp .in +2 .nf NLSPATH="/system/nlslib/%N.cat" .fi .in -2 .sp この例では、\fBcatopen()\fR がすべてのメッセージカタログをディレクトリ \fB/system/nlslib\fR から見つける必要があることを定義します。このディレクトリのカタログ名は、\fBcatopen\fR( ) に指定された \fIname\fR パラメータの \fB%N\fR に接尾辞の \fB\&.cat\fR がついています。 .sp 置換フィールドは、後ろに単一文字のキーワードがついた \fB%\fR 記号からなります。現在定義されているキーワードを以下に示します。 .sp .ne 2 .mk .na \fB%N\fR .ad .sp .6 .RS 4n \fBcatopen()\fR に指定された \fIname\fR パラメータの値 .RE .sp .ne 2 .mk .na \fB%L\fR .ad .sp .6 .RS 4n \fBLANG\fR または \fBLC_MESSAGES\fR の値 .RE .sp .ne 2 .mk .na \fB%l\fR .ad .sp .6 .RS 4n \fBLANG\fR または \fBLC_MESSAGES\fR の言語要素 .RE .sp .ne 2 .mk .na \fB%t\fR .ad .sp .6 .RS 4n \fBLANG\fR または \fBLC_MESSAGES\fR の地域要素 .RE .sp .ne 2 .mk .na \fB%c\fR .ad .sp .6 .RS 4n \fBLANG\fR または \fBLC_MESSAGES\fR のコードセット要素 .RE .sp .ne 2 .mk .na \fB%%\fR .ad .sp .6 .RS 4n 単一の \fB%\fR 文字 .RE 現在定義されていない値を指定した場合は、空の文字列に置換されます。分離文字の下線文字 (\fB_\fR) およびピリオド (\fB\&.\fR) は、\fB%t\fR および \fB%c\fR の各置換フィールドには入っていません。 .sp \fBNLSPATH\fR で定義されるテンプレートは、コロン (\fB:\fR) で区切られます。先頭のコロンまたは隣接する 2 つのコロン (\fB::\fR) は、\fB%N\fR と同等の意味です。例: .sp .in +2 .nf NLSPATH=":%N.cat:/nlslib/%L/%N.cat" .fi .in -2 .sp この例では、要求されたメッセージカタログを \fIname\fR、\fIname\fR\fB\&.cat\fR、および \fB/nlslib/$LANG/\fR\fIname\fR.cat から見つけるよう \fBcatopen()\fR に指示しています。\fBgettext()\fR の場合、\fB%N\fR には自動的に \fBmessages\fR にマップされます。 .sp \fBNLSPATH\fR が設定されていないか \fINULL\fR に設定されている場合、\fBcatopen()\fR と \fBgettext()\fR は \fBsetlocale\fR(3C) を呼び出します。setlocale3C は \fBLANG\fR と \fBLC_*\fR 変数を調べてメッセージカタログの場所を探します。 .sp Solaris における拡張された %L の解釈には、gettext(1)、\fBgettext\fR(3C)、\fBcatopen\fR(3C)、\fBsetlocale\fR(3C)、および \fBlocale_alias\fR(5) で説明されているように、受け入れられたロケール名別名のサポートが含まれます。 .sp 通常、\fBNLSPATH\fR はシステム全体 (\fB/etc/profile\fR 中) に設定されるので、プログラムもユーザーもメッセージカタログに関連付けられた場所や命名規約を意識する必要はありません。 .RE .sp .ne 2 .mk .na \fB\fBPATH\fR\fR .ad .sp .6 .RS 4n \fBsh\fR(1)、\fBtime\fR(1)、\fBnice\fR(1)、\fBnohup\fR(1) などのユーティリティーが、不完全なパス名しかわからないファイルを探すときに使用する一連のディレクトリ接頭辞です。複数の接頭辞はコロン (\fB:\fR) で区切られます。\fBlogin\fR(1) は \fBPATH=/usr/bin\fR を設定します。詳細は、\fBsh\fR(1) を参照してください。 .RE .sp .ne 2 .mk .na \fB\fBSEV_LEVEL\fR\fR .ad .sp .6 .RS 4n 重大度レベルを定義し、文字列をその重大度レベルと対応させ、標準書式エラーメッセージで出力します。\fBaddseverity\fR(3C)、\fBfmtmsg\fR(1)、および \fBfmtmsg\fR(3C) を参照してください。 .RE .sp .ne 2 .mk .na \fB\fBTERM\fR\fR .ad .sp .6 .RS 4n 出力を行う端末の種類です。この情報は \fBvi\fR(1) などのコマンドによって使用され、その端末の特殊な機能が利用できます。 .RE .sp .ne 2 .mk .na \fB\fBTZ\fR\fR .ad .sp .6 .RS 4n タイムゾーンの情報です。この環境変数の内容は、\fBctime\fR(3C)、\fBlocaltime\fR(3C)、\fBstrftime\fR(3C)、\fBmktime\fR(3C) の各関数がデフォルトのタイムゾーンを変更するのに使用します。\fBTZ\fR の値の形式は、次の 2 つのうちのどちらかです (見やすくするために、スペースを挿入しています)。 .sp .in +2 .nf :characters .fi .in -2 または .sp .in +2 .nf std offset dst offset, rule .fi .in -2 \fBTZ\fR が最初の形式である場合 (つまり、最初の文字がコロン (: ) である場合)、あるいは、\fBTZ\fR が 2 番目の形式でない場合、\fBTZ\fR は、(もしあれば) 先頭のコロンを無視して、\fB/usr/share/lib/zoneinfo/\fR に関連するタイムゾーンデータベースファイルへのパスを示します。 .sp そうでない場合、つまり、\fBTZ\fR が 2 番目の形式である場合、TZ は次のように展開されます。 .sp .in +2 .nf \fIstdoffset\fR[\fIdst\fR[\fIoffset\fR][,\fIstart\fR[/\fItime\fR],\fIend\fR[/\fItime\fR]]] .fi .in -2 .sp .ne 2 .mk .na \fB\fIstd\fR と \fIdst\fR\fR .ad .sp .6 .RS 4n 標準のタイムゾーン (\fIstd\fR) または代替のタイムゾーン (\fIdst\fR、サマータイムなど) の名前を指定します。名前の長さは 3 バイト以上 {\fBTZNAME_MAX\fR} バイト以下です。\fIstd\fR だけが必須です。\fIdst\fR を省略した場合、このタイムゾーンに代替の時間は表示されません。これらのフィールドは、それぞれ次の 2 つの形式、つまり引用付きと引用なしのどちらかで指定できます。 .RS +4 .TP .ie t \(bu .el o 引用付き形式の場合、最初の文字は小なり記号 (<) で、最後の文字が大なり記号 (>) です。これら引用記号の間にある文字はすべて、現在のロケールにおける移植可能な文字セットの英数字文字、プラス記号 (+)、またはマイナス記号 (-) です。この場合、\fIstd\fR と \fIdst\fR フィールドは引用記号を含みません。 .RE .RS +4 .TP .ie t \(bu .el o 引用なし形式の場合、std と dst フィールド内のすべての文字は、現在のロケールにおける移植可能な文字セットの英数字文字です。 .RE どちらかのフィールドが 3 バイトより小さい場合 (\fIdst\fR を省略した場合を除く)、{\fBTZNAME_MAX\fR} バイトより大きい場合、あるいは、前述の文字以外の文字を使用した場合、これらのフィールドの解釈方法は定義されていません。 .RE .sp .ne 2 .mk .na \fB\fIoffset\fR\fR .ad .sp .6 .RS 4n 協定世界時に合わせるために、ローカル時間に追加すべき値を示します。offset の形式は以下のとおりです。 .sp .in +2 .nf \fIhh\fR[:\fImm\fR[:\fIss\fR]] .fi .in -2 .sp 分 (\fImm\fR) および秒 (\fIss\fR) はオプションです。時間 (\fIhh\fR) は必須で、単一の数字で指定することもできます。\fIstd\fR の後では必ず \fIoffset\fR を指定しなければなりません。\fIdst\fR の後に \fIoffset\fR を指定しないと、サマータイムは標準時間の 1 時間先と見なされます。1 つまたは複数の数字による指定が可能です。この値はつねに 10 進数として解釈されます。時間は 0 と 24 の間の値で、分 (および秒) を指定する場合は 0 と 59 の間の値で指定する必要があります。この範囲外の値を指定した場合の動作は予測できません。\fB-\fR を値の前に付けると、タイムゾーンはグリニッジ子午線の東です。それ以外の場合は、グリニッジ子午線の西になります (オプションの \fI+\fR 記号で示すこともできます)。 .RE .sp .ne 2 .mk .na \fB\fIstart\fR/\fItime\fR, \fIend\fR/\fItime\fR\fR .ad .sp .6 .RS 4n サマータイムに切り替える日時と、サマータイムから元に戻る日時を示します。\fIstart/time\fR は、標準時間からサマータイムに切り替える日時を示し、\fIend/time\fR は、標準時間に戻る日時を示します。各 \fItime\fR フィールドは、変更を行う時間 (現在のローカル時間) を示します。 .sp \fIstart\fR および \fIend\fR は、以下のいずれかの形式をとります。 .sp .ne 2 .mk .na \fB\fBJ\fR\fIn\fR\fR .ad .sp .6 .RS 4n ユリウス日 \fIn\fR (1 ≤ \fIn\fR ≤ 365)。うるう年は考えません。つまり毎年 2 月 28 日は 59 で、3 月 1 日は 60 となります。この書式では 2 月 29 日を扱えません。 .RE .sp .ne 2 .mk .na \fB\fIn\fR\fR .ad .sp .6 .RS 4n 0 から始まるユリウス日 \fIn\fR (1 ≤ n ≤ 365)。2 月 29 日を扱えるように、うるう年を考慮した書式です。 .RE .sp .ne 2 .mk .na \fB\fBM\fR\fIm.n.d\fR\fR .ad .sp .6 .RS 4n \fIm\fR 月 (1 ≤ \fIm\fR ≤ 12) \fIn\fR 週 (1 ≤ \fIn\fR ≤ 5) の \fId\fR^ 番目の曜日 (0 ≤ \fId\fR ≤ 6)。週 5 は、「\fIm\fR 月の最後の \fId\fR 番目の曜日」になります (最後の d 番目の曜日は、月の第 4 週または第 5 週に来ます)。週 1 は、その月の最初の \fId\fR^ 番目の曜日が来る週を意味します。曜日ゼロは日曜日です。 .RE これらのオプションのフィールドがない場合は、システム固有のデフォルト値を使用して \fIstart\fR および \fIend\fR を指定します。 .sp \fItime\fR は \fIoffset\fR と同じ書式を用います。ただし、time では先行符号 (– または +) を付けることはできません。\fItime\fR を指定しない場合、デフォルト値は 02:00:00 です。 .RE .RE .SH 関連項目 .sp .LP \fBcat\fR(1), \fBdate\fR(1), \fBed\fR(1), \fBfmtmsg\fR(1), \fBlocaledef\fR(1), \fBlogin\fR(1), \fBls\fR(1), \fBmkmsgs\fR(1), \fBnice\fR(1), \fBnohup\fR(1), \fBsh\fR(1), \fBsort\fR(1), \fBtime\fR(1), \fBvi\fR(1), \fBexec\fR(2), \fBaddseverity\fR(3C), \fBcatopen\fR(3C), \fBctime\fR(3C), \fBctype\fR(3C), \fBfmtmsg\fR(3C), \fBgetdate\fR(3C), \fBgetnetpath\fR(3NSL), \fBgettext\fR(3C), \fBgettxt\fR(3C), \fBlocaleconv\fR(3C), \fBmblen\fR(3C), \fBmktime\fR(3C), \fBprintf\fR(3C), \fBsetlocale\fR(3C), \fBstrcoll\fR(3C), \fBstrftime\fR(3C), \fBstrtod\fR(3C), \fBstrxfrm\fR(3C), \fBTIMEZONE\fR(4), \fBnetconfig\fR(4), \fBpasswd\fR(4), \fBprofile\fR(4), \fBlocale_alias\fR(5)