NAME¶
getflags, usage - command-line parsing for shell scripts
SYNOPSIS¶
getflags $*
usage [ progname ]
DESCRIPTION¶
Getflags parses the options in its command-line arguments according to
the environment variable
$flagfmt. This variable should be a list of
comma-separated options. Each option can be a single letter, indicating that
it does not take arguments, or a letter followed by the space-separated names
of its arguments.
Getflags prints an
rc(1) script on standard
output which initializes the environment variable
$flagx for
every option mentioned in
$flagfmt. If the option is not present on the
command-line, the script sets that option's flag variable to an empty list.
Otherwise, the script sets that option's flag variable with a list containing
the option's arguments or, if the option takes no arguments, with the string
1. The script also sets the variable
$* to the list of arguments
following the options. The final line in the script sets the
$status
variable, to the empty string on success and to the string
usage when
there is an error parsing the command line.
Usage prints a usage message to standard error. It creates the message
using
$flagfmt, as described above,
$args, which should contain
the string to be printed explaining non-option arguments, and
$0, the
program name (see
rc(1)). If run under
sh(1), which does not set
$0, the program name must be given explicitly on the command line.
EXAMPLE¶
Parse the arguments for
leak(1):
-
flagfmt='b,s,f binary,r res,x width'
args='name | pid list'
if(! ifs=() eval `{getflags $*} || ~ $#* 0){
usage
exit usage
}
SOURCE¶
/src/cmd/getflags.c
/src/cmd/usage.c
SEE ALSO¶
arg(3)