environ - user environment
プロセスの実行を開始すると、exec 関数のファミリの中の 1 つが環境と 呼ばれる文字列の配列を用意します (exec(2) を参照)。規約上、これらの文字列は variable (変数) = value (値) という形式をとります (たとえば、PATH=/sbin:/usr/sbin)。この環境変数により、プログラムはプログラムの環境に関する情報を利用できるようになります。
環境中に名前を設定するには、sh(1) における name=value 引数と export コマンドを使用するか、あるいは exec 関数のうちの 1 つを使用します。.profile ファイル内でエクスポートされる MAIL、PS1、PS2、IFS などのシェル変数と環境変数との間で矛盾を生じさせるのは避けてください。詳細は profile(5) を参照してください。
The following environmental variables can be used by applications and are expected to be set in the target runtime environment.
ユーザーのログインディレクトリ名。パスワードファイル (passwd(5) を参照) に基づいて login(1) が設定します。
国際化情報を指定するのに用いる文字列。ユーザーはこの情報を利用して、さまざまな国の慣習に従って作業を進めることができます。setlocale( 3C) 関数の引数 locale に "" を設定して呼び出すと、この関数は環境変数 LANG を調べます。特定のカテゴリに対する環境変数が設定されていない、あるいは NULL に設定されている場合は、LANG がデフォルト時のロケールとして使用されます。ただし、LC_ALL が有効な、空でない値に設定されている場合は、LANG 変数とその他の LC_* 変数の両方をオーバーライドするためにその内容が使用されます。たとえば、setlocale(LC_CTYPE, "") のように呼び出されると、setlocale() は、まず環境変数 LC_CTYPE が設定されていて NULL でないことを問い合わせます。LC_CTYPE が未設定または NULL の場合は、setlocale() は次に環境変数 LANG を調べて、それが設定されていて NULL でないことを確認します。LANG と LC_CTYPE の両方が未設定または NULL の場合、デフォルトの C ロケールを使用して LC_CTYPE カテゴリを設定します。
ほとんどのコマンドは、ほかの処理を行う前に setlocale(LC_ALL, "") を呼び出します。この関数を用いて適切な環境変数を設定することにより、コマンドをさまざまな国の慣習に従って使用できるようになります。
以下に示す環境変数が各カテゴリの setlocale(3C) と対応しています。
空文字列でない正当な値に設定されていれば、LANG およびすべての LC_* 変数の値に代わって使用されます。
使用する文字照合順序を指定します。このカテゴリにあてはまる情報は、localedef(1) コマンドによって作成されるデータベース内に格納されています。この環境変数は strcoll(3C) および strxfrm(3C) に影響を及ぼします。
文字分類、文字変換および複数バイト文字の幅を指定します。When LC_CTYPE is set to a valid value, the calling utility can display and handle text and file names containing valid characters for that locale; Extended UNIX Code (EUC) characters where any individual character can be 1, 2, or 3 bytes wide; and EUC characters of 1, 2, or 3 column widths.デフォルトの C ロケールは、7 ビットの ASCII 文字セットに対応していて、ISO 8859-1 の文字だけが有効です。このカテゴリにあてはまる情報は、localedef() コマンドによって作成されるデータベース内に格納されています。ctype(3C )、mblen(3C)、および他の多くのコマンド (たとえば、cat(1)、ed(1)、ls(1)、vi(1)) がこの環境変数を使用します。
使用するメッセージデータベースの言語を指定します。たとえば、アプリケーションは、フランス語用のメッセージデータベースとドイツ語用のメッセージデータベースを使い分けることができます。メッセージデータベースは、mkmsgs(1) コマンドで作成します。この環境変数は、exstr(1)、gettxt(1)、gettxt(3C)、および gettext(3C) によって使用されます。
特定のロケールで使用する通貨記号および区切り記号を指定します。このカテゴリにあてはまる情報は、localedef(1) コマンドによって作成されるデータベース内に格納されています。localeconv(3C) がこの環境変数を使用します。
小数点および千の位の区切り記号を指定します。このカテゴリにあてはまる情報は、localedef() コマンドによって作成されるデータベース内に格納されています。デフォルト値の C ロケールは、小数点にピリオド (.) を指定し、千の位の区切り記号は指定しません。localeconv(3C)、printf(3C)、および strtod(3C) がこの環境変数を使用します。
日付と時間の書式を指定します。このカテゴリにあてはまる情報は、localedef() で指定されるデータベース内に格納されています。デフォルト値の C ロケールは、アメリカ合衆国の日付と時間の書式に対応しています。多くのコマンドおよび関数がこの環境変数を使用します。例: at(1)、calendar(1)、date(1)、strftime(3C)、および getdate(3C) などです。
stderr にメッセージを表示するとき、fmtmsg がどの標準書式メッセージコンポーネントを使用するかを制御します (fmtmsg(1) および fmtmsg(3C) を参照)。
コロンで区切られたネットワーク識別子のリストです。ネットワーク識別子とは、システムの「ネットワーク選択」コンポーネントが、アプリケーション固有のデフォルトのネットワーク検索パスを提供するために 使用する文字列です。ネットワーク識別子は、NULL 以外の文字からなり、長さは 1 以上である必要があります。最大長は制限されていません。通常は、システム管理者が ネットワーク識別子を選択します。ネットワーク識別子は、/etc/netconfig ファイルのすべての記述項の最初のフィールドでもあります。したがって NETPATH は、/etc/netconfig ファイルへのリンクおよびそのファイルのネットワーク記述項に入っているネットワークに関する情報を提供します。/etc/netconfig は、システム管理者によって維持されます。getnetpath(3C) で説明されているライブラリルーチンが、NETPATH 環境変数にアクセスします。
メッセージカタログを見つけるために catopen(3C) と gettext(3C) が使用する、一連のテンプレートを指定します。各テンプレートは、オプションの接頭辞、1 つまたは複数の置換フィールド、ファイル名、およびオプションの接尾辞からなります。例:
NLSPATH="/system/nlslib/%N.cat"
この例では、catopen() がすべてのメッセージカタログをディレクトリ /system/nlslib から見つける必要があることを定義します。このディレクトリのカタログ名は、catopen( ) に指定された name パラメータの %N に接尾辞の .cat がついています。
置換フィールドは、後ろに単一文字のキーワードがついた % 記号からなります。現在定義されているキーワードを以下に示します。
catopen() に指定された name パラメータの値
LANG または LC_MESSAGES の値
LANG または LC_MESSAGES の言語要素
LANG または LC_MESSAGES の地域要素
LANG または LC_MESSAGES のコードセット要素
A single % character.
現在定義されていない値を指定した場合は、空の文字列に置換されます。分離文字の下線文字 (_) およびピリオド (.) は、%t および %c の各置換フィールドには入っていません。
NLSPATH で定義されるテンプレートは、コロン (:) で区切られます。先頭のコロンまたは隣接する 2 つのコロン (::) は、%N と同等の意味です。例:
NLSPATH=":%N.cat:/nlslib/%L/%N.cat"
この例では、要求されたメッセージカタログを name、name.cat、および /nlslib/$LANG/name.cat から見つけるよう catopen() に指示しています。For gettext(), %N automatically maps to messages.
NLSPATH が設定されていないか NULL に設定されている場合、catopen() と gettext() は setlocale(3C) を呼び出します。setlocale3C は LANG と LC_* 変数を調べてメッセージカタログの場所を探します。
The extended interpretation of %L in Oracle Solaris includes the support for accepted locale name aliases as described in gettext(1), gettext(3C), catopen(3C), setlocale(3C), and locale_alias(7).
LANG または LC_MESSAGES 環境変数の要素については、catopen() 関数を使用して説明されています。詳細は、catopen(3C) のマニュアルページを参照してください。
通常、NLSPATH はシステム全体 (/etc/profile 中) に設定されるので、プログラムもユーザーもメッセージカタログに関連付けられた場所や命名規約を意識する必要はありません。
sh(1)、time(1)、nice(1)、nohup(1) などのユーティリティーが、不完全なパス名しかわからないファイルを探すときに使用する一連のディレクトリ接頭辞です。複数の接頭辞はコロン (:) で区切られます。login(1) は PATH=/usr/bin を設定します。詳細は、sh(1) を参照してください。
重大度レベルを定義し、文字列をその重大度レベルと対応させ、標準書式エラーメッセージで出力します。addseverity(3C)、fmtmsg(1)、および fmtmsg(3C) を参照してください。
出力を行う端末の種類です。この情報は vi(1) などのコマンドによって使用され、その端末の特殊な機能が利用できます。
Time zone information.The contents of this environment variable are used by the functions ctime(3C), localtime(3C), strftime(3C), and mktime(3C) to override the default time zone.
By default, this variable is not set.When not set, the system default time zone of localtime is used.The data for this time zone can be set by either of the commands:
zic -l timezone
or
nlsadmin set-timezone timezone
When run, those commands will update the time zone of all programs relying on the localtime time zone.For more information, see tzreload(8).
If set, the value of TZ has one of the two formats (spaces inserted for clarity):
:characters
or
std offset dst offset, rule
If TZ is of the first format (that is, if the first character is a colon (:)), or if TZ is not of the second format, then TZ designates a path to a time zone database file relative to /usr/share/lib/zoneinfo/, ignoring a leading colon if one exists.
そうでない場合、つまり、TZ が 2 番目の形式である場合、TZ は次のように展開されます。
stdoffset[dst[offset][,start[/time],end[/time]]]
Indicate no less than three, nor more than {TZNAME_MAX}, bytes that are the designation for the standard (std) or the alternative (dst, such as Daylight Saving Time) time zone.Only std is required; if dst is missing, then the alternative time does not apply in this time zone.これらのフィールドは、それぞれ次の 2 つの形式、つまり引用付きと引用なしのどちらかで指定できます。
In the quoted form, the first character is the less-than ('<') character and the last character is the greater-than ('>') character.これら引用記号の間にある文字はすべて、現在のロケールにおける移植可能な文字セットの英数字文字、プラス記号 (+)、またはマイナス記号 (-) です。この場合、std と dst フィールドは引用記号を含みません。
引用なし形式の場合、std と dst フィールド内のすべての文字は、現在のロケールにおける移植可能な文字セットの英数字文字です。
どちらかのフィールドが 3 バイトより小さい場合 (dst を省略した場合を除く)、{TZNAME_MAX} バイトより大きい場合、あるいは、前述の文字以外の文字を使用した場合、これらのフィールドの解釈方法は定義されていません。
協定世界時に合わせるために、ローカル時間に追加すべき値を示します。offset の形式は以下のとおりです。
hh[:mm[:ss]]
分 (mm) および秒 (ss) はオプションです。時間 (hh) は必須で、単一の数字で指定することもできます。std の後では必ず offset を指定しなければなりません。dst のあとに offset が指定されていない場合、サマータイムは標準時間の 1 時間先とみなされます。1 つまたは複数の数字による指定が可能です。この値はつねに 10 進数として解釈されます。時間は 0 と 24 の間の値で、分 (および秒) を指定する場合は 0 と 59 の間の値で指定する必要があります。この範囲外の値を指定した場合の動作は予測できません。- を値の前に付けると、タイムゾーンはグリニッジ子午線の東です。それ以外の場合は、グリニッジ子午線の西になります (オプションの + 記号で示すこともできます)。
サマータイムに切り替える日時と、サマータイムから元に戻る日時を示します。start/time は、標準時間からサマータイムに切り替える日時を示し、end/time は、標準時間に戻る日時を示します。各 time フィールドは、変更が行われる時間 (現在のローカル時間) を示します。
start および end は、以下のいずれかの形式をとります。
ユリウス日 n (1 ≤ n ≤ 365)。うるう年は考えません。つまり毎年 2 月 28 日は 59 で、3 月 1 日は 60 となります。この書式では 2 月 29 日を扱えません。
0 から始まるユリウス日 n (1 ≤ n ≤ 365)。2 月 29 日を扱えるように、うるう年を考慮した書式です。
m 月 (1 ≤ m ≤ 12) n 週 (1 ≤ n ≤ 5) の d 番目の曜日 (0 ≤ d ≤ 6)。週 5 は、「m 月の最後の d 番目の曜日」になります (最後の d 番目の曜日は、月の第 4 週または第 5 週に来ます)。週 1 は、その月の最初の d 番目の曜日が来る週を意味します。曜日ゼロは日曜日です。
これらのオプションのフィールドがない場合は、システム固有のデフォルト値を使用して start および end を指定します。
time は、先頭の符号 (「–」または「+」) が許可されない点を除き、offset と形式が同じです。time を指定しない場合、デフォルト値は 02:00:00 です。
cat(1), date(1), ed(1), fmtmsg(1), localedef(1), login(1), ls(1), mkmsgs(1), nice(1), nohup(1), sh(1), sort(1), time(1), vi(1), exec(2), addseverity(3C), catopen(3C), ctime(3C), ctype(3C), fmtmsg(3C), getdate(3C), getnetpath(3C), gettext(3C), gettxt(3C), localeconv(3C), mblen(3C), mktime(3C), printf(3C), setlocale(3C), strcoll(3C), strftime(3C), strtod(3C), strxfrm(3C), netconfig(5), passwd(5), profile(5), locale_alias(7), nlsadm(8), tzreload(8), zic(8)
The use of a null path name or dot (.) in the shell parameter PATH is strongly discouraged.