'\" 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)