FMTMSG(1) | User Commands | FMTMSG(1) |
fmtmsg - display a message on stderr or system console
fmtmsg [-c class] [-u subclass] [-l label] [-s severity]
[-t tag] [-a action] text
Based on a message's classification component, the fmtmsg utility either writes a formatted message to stderr or writes a formatted message to the console.
A formatted message consists of up to five standard components (see environment variable MSGVERB in the ENVIRONMENT VARIABLES section of this page). The classification and subclass components are not displayed as part of the standard message, but rather define the source of the message and direct the display of the formatted message.
The following options are supported:
-c class
hard
soft
firm
-u subclass
appl
util
opsys
recov
nrecov
console
-l label
-s severity
halt
error
warn
info
-t tag
-a action
text
Example 1 Standard message format
The following example of fmtmsg produces a complete message in the standard message format and displays it to the standard error stream.
example% fmtmsg -c soft -u recov,print,appl -l UX:cat \
-s error -t UX:cat:001 -a "refer to manual" "invalid syntax"
produces:
UX:cat: ERROR: invalid syntax TO FIX: refer to manual UX:cat:138
Example 2 Using MSGVERB
When the environment variable MSGVERB is set as follows:
MSGVERB=severity:text:action
and Example 1 is used, fmtmsg produces:
ERROR: invalid syntax TO FIX: refer to manual
Example 3 Using SEV_LEVEL
When the environment variable SEV_LEVEL is set as follows:
SEV_LEVEL=note,5,NOTE
the following fmtmsg command:
example% fmtmsg -c soft -u print -l UX:cat -s note \
-a "refer to manual" "invalid syntax"
produces:
NOTE: invalid syntax TO FIX: refer to manual
and displays the message on stderr.
The environment variables MSGVERB and SEV_LEVEL control the behavior of fmtmsg. MSGVERB is set by the administrator in the /etc/profile for the system. Users can override the value of MSGVERB set by the system by resetting MSGVERB in their own .profile files or by changing the value in their current shell session. SEV_LEVEL can be used in shell scripts.
MSGVERB tells fmtmsg which message components to select when writing messages to stderr. The value of MSGVERB is a colon-separated list of optional keywords. MSGVERB can be set as follows:
MSGVERB=[keyword[:keyword[:...]]] export MSGVERB
Valid keywords are: label, severity, text, action, and tag. If MSGVERB contains a keyword for a component and the component's value is not the component's null value, fmtmsg includes that component in the message when writing the message to stderr. If MSGVERB does not include a keyword for a message component, that component is not included in the display of the message. The keywords may appear in any order. If MSGVERB is not defined, if its value is the null string, if its value is not of the correct format, or if it contains keywords other than the valid ones listed above, fmtmsg selects all components.
MSGVERB affects only which message components are selected for display. All message components are included in console messages.
SEV_LEVEL defines severity levels and associates print strings with them for use by fmtmsg. The standard severity levels shown below cannot be modified. Additional severity levels can be defined, redefined, and removed.
0
1
2
3
4
SEV_LEVEL is set as follows:
description is a comma-separated list containing three fields:
SEV_LEVEL= [description[:description[:...]]] export SEV_LEVEL
description=severity_keyword, level, printstring
severity_keyword is a character string used as the keyword with the -s severity option to fmtmsg.
level is a character string that evaluates to a positive integer (other than 0, 1, 2, 3, or 4, which are reserved for the standard severity levels). If the keyword severity_keyword is used, level is the severity value passed on to fmtmsg(3C).
printstring is the character string used by fmtmsg in the standard message format whenever the severity value level is used.
If SEV_LEVEL is not defined, or if its value is null, no severity levels other than the defaults are available. If a description in the colon separated list is not a comma separated list containing three fields, or if the second field of a comma separated list does not evaluate to a positive integer, that description in the colon separated list is ignored.
The following exit values are returned:
0
1
2
4
32
July 20, 1994 | OmniOS |