'\" te .\" Copyright 1989 AT&T Copyright (c) 1994, Sun Microsystems, Inc. All Rights Reserved .\" 2003, Sun Microsystems, Inc. All Rights Reserved .TH fmtmsg 1 "1994 年 7 月 20 日" "SunOS 5.11" "ユーザーコマンド" .SH 名前 fmtmsg \- stderr またはシステムコンソールへのメッセージ表示 .SH 形式 .LP .nf \fBfmtmsg\fR [\fB-c\fR \fIclass\fR] [\fB-u\fR \fIsubclass\fR] [\fB-l\fR \fIlabel\fR] [\fB-s\fR \fIseverity\fR] [\fB-t\fR \fItag\fR] [\fB-a\fR \fIaction\fR] \fItext\fR .fi .SH 機能説明 .sp .LP \fBfmtmsg\fR は、メッセージの分類コンポーネントに基づいて、書式付きメッセージを \fBstderr\fR またはコンソールに書き出します。 .sp .LP 書式付きメッセージは、 標準コンポーネントで構成されます (「環境」の項の環境変数 \fBMSGVERB\fR を参照)。このうち分類コンポーネントとサブクラスコンポーネントの 2 つは、標準メッセージの一部としては表示されません。 これらはメッセージの発行元を定義し、書式付きメッセージの表示先を指定するために使われます。 .SH オプション .sp .LP サポートしているオプションは、次のとおりです。 .sp .ne 2 .mk .na \fB\fB-c\fR \fIclass\fR\fR .ad .RS 16n .rt メッセージ発行の原因となった状態の種類を表します。以下のキーワードが指定可能です。 .sp .ne 2 .mk .na \fB\fBhard\fR \fR .ad .RS 9n .rt 状態の発生元はハードウェア .RE .sp .ne 2 .mk .na \fB\fBsoft\fR \fR .ad .RS 9n .rt 状態の発生元はソフトウェア .RE .sp .ne 2 .mk .na \fB\fBfirm\fR \fR .ad .RS 9n .rt 状態の発生元はファームウェア .RE .RE .sp .ne 2 .mk .na \fB\fB-u\fR \fIsubclass\fR \fR .ad .RS 16n .rt メッセージをさらに定義しメッセージの表示先を示すための、一連のキーワードを subclass に指定します。 キーワード間はコンマで区切ります。以下のキーワードが指定可能です。 .sp .ne 2 .mk .na \fB\fBappl\fR \fR .ad .RS 12n .rt 状態の発生はアプリケーション中に起因しています。このキーワードは \fButil\fR および \fBopsys\fR と同時には指定できません。 .RE .sp .ne 2 .mk .na \fB\fButil\fR \fR .ad .RS 12n .rt 状態の発生はユーティリティー中に起因しています。このキーワードは \fBappl\fR および \fBopsys\fR と同時には指定できません。 .RE .sp .ne 2 .mk .na \fB\fBopsys\fR \fR .ad .RS 12n .rt 状態の発生はカーネル中に起因しています。このキーワードは \fBappl\fR および \fButil\fR と同時には指定できません。 .RE .sp .ne 2 .mk .na \fB\fBrecov\fR \fR .ad .RS 12n .rt アプリケーションをその状態から回復させます。このキーワードは \fBnrecov\fR と同時には指定できません。 .RE .sp .ne 2 .mk .na \fB\fBnrecov\fR \fR .ad .RS 12n .rt アプリケーションをその状態から回復させません。このキーワードは \fBrecov\fR と同時には指定できません。 .RE .sp .ne 2 .mk .na \fB\fBprint\fR\fR .ad .RS 12n .rt 標準エラーストリーム \fBstderr\fR にメッセージを書き出します。 .RE .sp .ne 2 .mk .na \fB\fBconsole\fR \fR .ad .RS 12n .rt システムコンソールにメッセージを書き出します。\fBprint\fR と \fBconsole\fR を両方指定することも可能です。 .RE .RE .sp .ne 2 .mk .na \fB\fB-l\fR \fIlabel\fR \fR .ad .RS 16n .rt メッセージの発行元を指定します。 .RE .sp .ne 2 .mk .na \fB\fB-s\fR \fIseverity\fR \fR .ad .RS 16n .rt エラーの重大度を指定します。標準レベルの重大度として \fIseverity\fR に指定できるキーワードとその意味を以下に説明します。 .sp .ne 2 .mk .na \fB\fBhalt\fR \fR .ad .RS 9n .rt アプリケーションが重大なエラーを検出し、処理を中断しています。 .RE .sp .ne 2 .mk .na \fB\fBerror\fR\fR .ad .RS 9n .rt アプリケーションがエラーを検出しました。 .RE .sp .ne 2 .mk .na \fB\fBwarn\fR\fR .ad .RS 9n .rt アプリケーションが、通常は起こらない状態を検出しました。エラーの可能性があります。 .RE .sp .ne 2 .mk .na \fB\fBinfo\fR\fR .ad .RS 9n .rt アプリケーションは、エラーではない単なる情報を通知しています。 .RE .RE .sp .ne 2 .mk .na \fB\fB-t\fR \fItag\fR \fR .ad .RS 16n .rt メッセージの識別子を含んだ文字列を指定します。 .RE .sp .ne 2 .mk .na \fB\fB-a\fR \fIaction\fR \fR .ad .RS 16n .rt エラー回復処理の第 1 ステップを述べた文字列を指定します。 \fIaction\fR 引数は、それ全体が 1 つの文字列であると正しく解釈されるように 記述しなければなりません。\fBfmtmsg\fR は、この action で指定した文字列の前に \fBTO FIX:\fR を付加します。 .RE .sp .ne 2 .mk .na \fB\fItext\fR \fR .ad .RS 16n .rt 状態を表すテキスト文字列を指定します。\fItext\fR 引数は、それ全体が 1 つの文字列であると正しく解釈されるように 記述しなければなりません。 .RE .SH 使用例 .LP \fB例 1 \fR標準メッセージ形式 .sp .LP 次に示す \fBfmtmsg\fR は、標準メッセージ形式で完全なメッセージを生成し、それを標準エラーストリームに書き出す例です。 .sp .in +2 .nf example% \fBfmtmsg -c soft -u recov,print,appl -l UX:cat \e -s error -t UX:cat:001 -a "refer to manual" "invalid syntax"\fR .fi .in -2 .sp .sp .LP 結果: .sp .in +2 .nf UX:cat: ERROR: invalid syntax TO FIX: refer to manual UX:cat:138 .fi .in -2 .sp .LP \fB例 2 \fRMSGVERB を使用する .sp .LP 環境変数 \fBMSGVERB\fR が次のように設定されているとします。 .sp .in +2 .nf \fBMSGVERB=severity:text:action\fR .fi .in -2 .sp .sp .LP このとき前述の例 1 の \fBfmtmsg\fR コマンドを実行すると、以下の出力が得られます。 .sp .in +2 .nf ERROR: invalid syntax TO FIX: refer to manual .fi .in -2 .sp .LP \fB例 3 \fRSEV_LEVEL を使用する .sp .LP 環境変数 \fBSEV_LEVEL\fR が次のように設定されているとします。 .sp .in +2 .nf \fBSEV_LEVEL=note,5,NOTE\fR .fi .in -2 .sp .sp .LP このとき次の \fBfmtmsg\fR コマンドを実行します。 .sp .in +2 .nf example% \fBfmtmsg -c soft -u print -l UX:cat -s note \e -a "refer to manual" "invalid syntax"\fR .fi .in -2 .sp .sp .LP 結果: .sp .in +2 .nf NOTE: invalid syntax TO FIX: refer to manual .fi .in -2 .sp .sp .LP また、\fBstderr\fR にメッセージが出力されます。 .SH 環境 .sp .LP \fBfmtmsg\fR の動作は、 2 つの環境変数 \fBMSGVERB\fR と \fBSEV_LEVEL\fR により制御されています。\fBMSGVERB\fR はシステム管理者によって、システム用の \fB/etc/profile\fR 中に設定されています。ユーザーは、このシステムに設定された値以外の \fBMSGVERB\fR 値を使用することができます。その方法としては、ユーザーの \fB\&.profile\fR ファイル中にある \fBMSGVERB\fR をリセットする、現在のシェルセッション内で値を変更する、の 2 通りがあります。\fBSEV_LEVEL\fR はシェルスクリプト中で使用できます。 .sp .LP メッセージを \fBstderr\fR に出力するとき、どのコンポーネントを選択すべきかを \fBMSGVERB\fR が \fBfmtmsg\fR に伝えます。\fBMSGVERB\fR の値は一連のキーワードで、キーワード間はコロンで区切ります。\fBMSGVERB\fR は次に示す形式で設定できます。 .sp .in +2 .nf \fBMSGVERB=[\fIkeyword\fR[:\fIkeyword\fR[:...]]] export MSGVERB\fR .fi .in -2 .sp .sp .LP \fIkeywords\fR としては、 \fBlabel\fR 、 \fBseverity\fR 、 \fBtext\fR 、 \fBaction\fR 、 \fBtag\fR が指定できます。\fBMSGVERB\fR がコンポーネント用のキーワードを含んでいて、そのコンポーネントの値が NULL 文字列ではない場合、 \fBfmtmsg\fR はメッセージを \fBstderr\fR に書き出す際にそのコンポーネントをメッセージ中に挿入します。\fBMSGVERB\fR がコンポーネント用のキーワードを含んでいなければ、 そのコンポーネントはメッセージ表示には含まれません。前述のキーワードは任意の順序で指定できます。\fBMSGVERB\fR が定義されていない、値が NULL 文字列である、値の形式が正しくない、前述のもの以外のキーワードを含んでいる、といった場合には、\fBfmtmsg\fR はすべてのコンポーネントを選択します。 .sp .LP \fBMSGVERB\fR は、どのコンポーネントを選択するかを表しますが、 これは表示用のメッセージに関してだけです。コンソールへ出力されるメッセージには、常にすべてのコンポーネントが含まれます。 .sp .LP \fBSEV_LEVEL\fR は重大度レベルを定義し、\fBfmtmsg\fR で使用できるように印刷文字列をそれらのレベルに対応させます。なお以下に示す標準重大度レベルは、変更することはできません。これ以外のレベルは、定義したり、再定義したり、削除したりすることが可能です。 .sp .ne 2 .mk .na \fB\fB0\fR \fR .ad .RS 6n .rt (重大度は使用されません) .RE .sp .ne 2 .mk .na \fB\fB1\fR \fR .ad .RS 6n .rt \fBHALT\fR .RE .sp .ne 2 .mk .na \fB\fB2\fR \fR .ad .RS 6n .rt \fBERROR\fR .RE .sp .ne 2 .mk .na \fB\fB3\fR\fR .ad .RS 6n .rt \fBWARNING\fR .RE .sp .ne 2 .mk .na \fB\fB4\fR \fR .ad .RS 6n .rt \fBINFO\fR .RE .sp .LP \fBSEV_LEVEL\fR は次の形式で設定できます。 .sp .LP \fIdescription\fR は 3 つのフィールドで構成され、フィールド間は コンマで区切ります。 .sp .in +2 .nf \fBSEV_LEVEL= [\fIdescription\fR[:\fIdescription\fR[:...]]] export SEV_LEVEL\fR .fi .in -2 .sp .sp .LP \fIdescription\fR=\fIseverity_keyword\fR, \fIlevel\fR, \fIprintstring\fR .sp .LP 最初のフィールド \fIseverity_keyword\fR は、 \fBfmtmsg\fR の \fB-s\fR \fIseverity\fR オプションで指定できるキーワードの いずれかと同じ文字列です。 .sp .LP 次のフィールド \fIlevel\fR は、評価の結果が正の整数となる文字列です。ただしその整数値は、標準重大度レベルとして予約されている \fB0\fR 、 \fB1\fR 、 \fB2\fR 、 \fB3\fR 、または \fB4\fR であってはいけません。キーワード \fIseverity_keyword\fR が指定されていると、\fIlevel\fR の値は重大度の値として \fBfmtmsg\fR(3C) に渡されます。 .sp .LP 3 番目のフィールド \fIprintstring\fR は、前述の重大度値 \fIlevel\fR が用いられる際に \fBfmtmsg\fR が標準メッセージ形式で使用する文字列です。 .sp .LP \fBSEV_LEVEL\fR が定義されていない場合、またはその値が NULL 文字列の場合には、デフォルトの重大度レベル値だけが使用可能です。コロンで区切られた一連の \fIdescription\fR の中に、その内容がコンマで区切られた 3 つのフィールドで構成されていないものがあるとき、または第 2 フィールドの値が正の整数に評価されないものがあるとき、その \fIdescription\fR は無視されます。 .SH 終了ステータス .sp .LP 次の終了ステータスが返されます。 .sp .ne 2 .mk .na \fB\fB0\fR \fR .ad .RS 7n .rt 指定された機能はすべて正常に実行されました。 .RE .sp .ne 2 .mk .na \fB\fB1\fR\fR .ad .RS 7n .rt コマンド中に、構文の誤り、不正なオプション、 またはオプションに対する不正な引数が検出されました。 .RE .sp .ne 2 .mk .na \fB\fB2\fR\fR .ad .RS 7n .rt 機能は部分的に正常終了したが、メッセージは \fBstderr\fR に出力されませんでした。 .RE .sp .ne 2 .mk .na \fB\fB4\fR\fR .ad .RS 7n .rt 機能は部分的に正常終了したが、メッセージは システムコンソールに出力されませんでした。 .RE .sp .ne 2 .mk .na \fB\fB32\fR \fR .ad .RS 7n .rt 要求された機能はいずれも正常に終了しませんでした。 .RE .SH 属性 .sp .LP 属性についての詳細は、マニュアルページの \fBattributes\fR(5) を参照してください。 .sp .sp .TS tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) . 属性タイプ属性値 _ 使用条件system/core-os .TE .SH 関連項目 .sp .LP \fBaddseverity\fR(3C), \fBfmtmsg\fR(3C), \fBattributes\fR(5)