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)
GETFLAGS(8)