getflags

GETFLAGS(8)                  System Manager's Manual                 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 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){
                   usage
                   exit usage
              }

SOURCE
       /src/cmd/getflags.c
       /src/cmd/usage.c

SEE ALSO
       arg(3)



                                                                     GETFLAGS(8)