GETFLAGS(8) GETFLAGS(8)
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 vari-
able 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 con-
taining 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){
usage
exit usage
}
SOURCE
/usr/local/plan9/src/cmd/getflags.c
/usr/local/plan9/src/cmd/usage.c
SEE ALSO
arg(3)
Page 1 Plan 9 (printed 5/13/26)