|
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 Plan 9’s leak(1):
| |
flagfmt='b,s,f binary,r res,x width'
args='name | pid list'
if(! ifs=() eval `{getflags $*} || ~ $#* 0){
}
|
|
SOURCE
SEE ALSO
|
|