Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ getopt(1) — Motorola System V 88k Release 3.2 Version 1.2C

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getopts(1)

sh(1)

getopt(3C)



  GETOPT(1)             (Essential Utilities)             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


  Page 1                                                   May 1989


















  GETOPT(1)             (Essential Utilities)             GETOPT(1)



                 -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

  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


  Page 2                                                   May 1989


















  GETOPT(1)             (Essential Utilities)             GETOPT(1)



       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.







































  Page 3                                                   May 1989
















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