Current File : //usr/share/man/zh_CN.UTF-8/man1/fmtmsg.1
'\" 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)。分类组成部分和子类组成部分不会显示为标准消息的一部分,而是用来定义消息的来源并控制格式化消息的显示方式。
.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  
一个关键字列表(以逗号分隔),进一步定义消息和控制消息的显示方式。有效关键字包括:
.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  
对错误恢复过程第一步进行描述的文本字符串。必须写入此字符串,以便将整个 \fIaction\fR 参数解释为一个参数。\fBfmtmsg\fR 会在每个操作字符串前面使用 \fBTO FIX:\fR 前缀。
.RE

.sp
.ne 2
.mk
.na
\fB\fItext\fR \fR
.ad
.RS 16n
.rt  
对状况进行描述的文本字符串。必须写入此字符串,以便将整个 \fItext\fR 参数解释为一个参数。
.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 \fR使用 MSGVERB
.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 \fR使用 SEV_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
环境变量 \fBMSGVERB\fR 和 \fBSEV_LEVEL\fR 用于控制 \fBfmtmsg\fR 的行为。\fBMSGVERB\fR 由管理员在系统的 \fB/etc/profile\fR 中进行设置。用户可以通过重置其自身 \fB\&.profile\fR 文件中的 \fBMSGVERB\fR 或更改其当前 shell 会话中的值,来覆盖由系统设置的 \fBMSGVERB\fR 值。\fBSEV_LEVEL\fR 可以在 shell 脚本中使用。
.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
有效 \fIkeyword\fR 包括:\fBlabel\fR、\fBseverity\fR、\fBtext\fR、\fBaction\fR 和 \fBtag\fR。如果 \fBMSGVERB\fR 包含某个组成部分的关键字,且该组成部分的值不是组成部分的空值,则向 \fBstderr\fR 写入消息时,\fBfmtmsg\fR 将在消息中包含该组成部分。如果 \fBMSGVERB\fR 不包含消息组成部分的关键字,则该组成部分不会显示在消息中。关键字可按任意顺序出现。如果未定义 \fBMSGVERB\fR、如果其值为空字符串、如果其值使用的格式不正确,或者如果其包含除以上列出的有效关键字之外的关键字,则 \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 是包含三个字段并以逗号分隔的列表:
.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
只要使用严重性值 \fIlevel\fR,\fIprintstring\fR 就将是 \fBfmtmsg\fR 用于标准消息格式的字符串。
.sp
.LP
如果未定义 \fBSEV_LEVEL\fR,或者其值为空,则不显示除缺省值以外的任何严重性值。如果以冒号分隔的列表中的 \fIdescription\fR 不是包含三个字段并以逗号分隔的列表,或者如果以逗号分隔的列表中的第二个字段没有计算为正整数,将忽略以冒号分隔的列表中的 \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)