Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ getopt(1) — 4D1 2.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getopts(1)

sh(1)

getopt(3C)



     GETOPT(1)                                               GETOPT(1)



     NAME
          getopt - parse command options

     SYNOPSIS
          set -- `getopt optstring $*`

     DESCRIPTION
          WARNING:  Start using the new command getopts(1) in place of
          getopt(1).  getopt(1) will not be supported in the next
          major release.  For more information, see the WARNINGS
          section, below.

          getopt is used to break up options in command lines for easy
          parsing by shell procedures and to check for legal options.
          optstring is a string of recognized option letters (see
          getopt(3C)); if a letter is followed by a colon, the option
          is expected to have an argument which may or may not be
          separated from it by white space.  The special option -- is
          used to delimit the end of the options.  If it is used
          explicitly, getopt will recognize it; otherwise, getopt will
          generate it; in either case, getopt will place it at the end
          of the options.  The positional parameters ($1 $2 ...) of
          the shell are reset so that each option is preceded by a -
          and is in its own positional parameter; each option argument
          is also parsed into its own positional parameter.

     EXAMPLE
          The following code fragment shows how one might process the
          arguments for a command that can take the options a or b, as
          well as the option o, which requires an argument:

               set -- `getopt abo: $*`
               if [ $? != 0 ]
               then
                    echo $USAGE
                    exit 2
               fi
               for i in $*
               do
                    case $i in
                    -a | -b)  FLAG=$i; shift;;
                    -o)       OARG=$2; shift 2;;
                    --)       shift; break;;
                    esac
               done

          This code will accept any of the following as equivalent:

               cmd -aoarg file file
               cmd -a -o arg file file
               cmd -oarg -a file file
               cmd -a -oarg -- file file



     Page 1                                        (last mod. 8/20/87)





     GETOPT(1)                                               GETOPT(1)



     SEE ALSO
          getopts(1), sh(1).
          getopt(3C) in the Programmer's Reference Manual.

     DIAGNOSTICS
          getopt prints an error message on the standard error when it
          encounters an option letter not included in optstring.

     WARNINGS
          getopt(1) does not support the part of Rule 8 of the command
          syntax standard (see intro(1)) that permits groups of
          option-arguments following an option to be separated by
          white space and quoted.  For example,

                          cmd -a -b -o "xxx z yy" file

is not handled correctly). To correct this deficiency, use
the new command getopts(1) in place of getopt(1).
getopt(1) will not be supported in the next major release.
For this release a conversion tool has been provided,
getoptcvt. For more information about getopts and
getoptcvt, see the getopts(1) manual page.
If an option that takes an option-argument is followed by a
value that is the same as one of the options listed in
optstring (referring to the earlier EXAMPLE section, but
using the following command line: cmd -o -a file), getopt
will always treat -a as an option-argument to -o; it will
never recognize -a as an option. For this case, the for
loop in the example will shift past the file argument.
ORIGIN
AT&T V.3
Page 2 (last mod. 8/20/87)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026