getflags, usage − command‐line parsing for shell scripts



Getflags parses the options in its command‐line arguments
according to the environment variable 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 script on standard output
which initializes the environment variable $flagx for every
option mentioned in 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 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

     Usage prints a usage message to standard error.  It
creates the message using as described above, which should
contain the string to be printed explaining non‐option
arguments, and the program name (see If run under which does
not set the program name must be given explicitly on the
command line.

Parse the arguments for

     flagfmt=’b,s,f binary,r res,x width’ args=’name | pid
     list’ if(! ifs=() eval ‘{getflags $*} || ~ $#* 0){
          usage      exit usage }