анализатор параметров сценария оболочки Performance Co-Pilot (Performance Co-Pilot shell script option parser)
Имя (Name)
pmgetopt
- Performance Co-Pilot shell script option parser
Синопсис (Synopsis)
$PCP_BINADM_DIR/pmgetopt
[-u?
] [-c
file] [-p
name] [--
]
[parameters]
Описание (Description)
pmgetopt
is used to perform command line option parsing for shell
scripts used in the Performance Co-Pilot (PCP toolkit). It is
also used to generate usage messages for those scripts.
The parameters given to pmgetopt
take two forms: initially,
options specific to pmgetopt
itself are passed in, and terminated
using the -- mechanism. Thereafter, all of the parameters passed
into the shell script should be passed (usually this is simply
the "$@" variable).
Параметры (Options)
The available command line options are:
-c
=file, --config
=file
A configuration file in the format described below is passed
to pmconfig
using this option. If this option is omitted,
then pmconfig
will read its configuration from the standard
input stream.
-p
=name, --progname
=name
When parsing the calling shell scripts parameters, error and
usage messages will contain the given program name rather
than referring to pmgetopt
itself as the source of the
error.
-u
, --usage
A usage message appropriate for the calling shell script to
present as its own can be generated using the option.
-?
, --help
Display the usage message for pmgetopt
itself and exit.
pmgetopt
parses the given parameters, and produces output in a
format suitable for sourcing in the calling shell script. When
both short and long forms of an argument are allowed by the
specification, pmgetopt
will always indicate the short form for
simpler shell processing. If arguments are presented that do not
match the configuration, a request for a usage message (-?) will
be generated for the calling script to respond to. Any non-
option parameters will be echoed back to the calling script
preceded by the double-hyphen delimiter. Thus a script should
stop handling options when this delimiter is detected, and begin
the handling of any non-option arguments.
Unlike with the shell built-in getopt command, variables like
$OPTARG are not set and the calling script will typically employ
use of the shell built-in eval, set and positional shift commands
to ensure option processing occurs correctly.
Конфигурация (Configuration)
The configuration format used by pmgetopt
is intended to closely
reflect the usage message which would be generated in the
presence of invalid arguments (or the -?
, --help
option).
There are primarily two types of configuration line - commands
and options. Commands allow metadata to be passed into the
option processing process, and options are the allowable command
line options that the shell script will accept. Command lines
are preceded by the hash character, whereas option lines will
always begin with a hyphen (either single or double). Any other
line in the configuration, which may include usage headers or
descriptive text, has no impact on the option parsing and will be
copied unmodified into the usage message.
The set of commands is: getopt (provide short-argument option
specification manually, if not present this will be generated
from the options presented), usage (provide short one-line
summary used at the head of the usage message, which will be
prefixed by the progname before reporting), and end which informs
pmgetopt
to stop processing further commands and options - any
subsequent text encountered will be simply appended to the usage
message.
A short-hand notation exists for each of the standard PCP
options, as described in PCPIntro(1). If any of these options
(e.g --host
) appears as a single word on any line, it will be
transformed into the appropriate option for the shell script,
including all metadata about that option (whether it accepts an
argument, both short and long option forms, and so on).
Use of the equals symbol ("=") indicates the presence of a
required argument to any option, for both short and long forms.
Any non-standard option must be accompanied by a non-empty
description of that argument.
Примеры (Examples)
As an example, the following is a valid configuration:
# Usage: [options] node...
Options:
--archive
-d, --delay pause between updates for archive replay
--host
--interval
-i=INST, --insts=INST comma-separated metrics instance list
-r output raw counters (no rate conversion)
--width=N set the width of each column of output
--timezone
--help
This configuration will produce the following usage message, when
run as shown.
$ pmgetopt --usage --progname=clusterstat -- "$@"
Usage: clusterstat [options] node...
Options:
-a FILE, --archive=FILE
metrics source is a PCP log archive
-d, --delay pause between updates for archive replay
-h HOST, --host=HOST metrics source is PMCD on host
-t DELTA, --interval=DELTA
sampling interval
-i INST, --insts=INST comma-separated metrics instance list
-r output raw counters (no rate conversion)
--width=N set the width of each column of output
-Z TZ, --timezone=TZ set reporting timezone
-?, --help show this usage message and exit
Several examples of pmgetopt
use form part of the PCP toolkit, in
particular the pcp(1) and pmlogmv(1) scripts provide good
reference examples.
Окружение PCP (PCP environment)
Environment variables with the prefix PCP_
are used to
parameterize the file and directory names used by PCP. On each
installation, the file /etc/pcp.conf contains the local values
for these variables. The $PCP_CONF
variable may be used to
specify an alternative configuration file, as described in
pcp.conf(5).
Смотри также (See also)
pcp(1), pmlogmv(1), pmgetopt_r(3), pcp.conf(5) and pcp.env(5).