Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ getopts(1) — sysv — mips UMIPS RISC/os 4.52

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

intro(1)

sh(1)

getopt(3)



GETOPTS(1-SysV)     RISC/os Reference Manual      GETOPTS(1-SysV)



NAME
     getopts, getoptcvt - parse command options

SYNOPSIS
     getopts optstring name [arg ...]

     /usr/lib/getoptcvt [-b] file

DESCRIPTION
     getopts is used by shell procedures to parse positional
     parameters and to check for legal options.  It supports all
     applicable rules of the command syntax standard (see Rules
     3-10, intro(1)).  It should be used in place of the
     getopt(1) command.  (See the WARNING, below.)

     optstring must contain the option letters the command using
     getopts will recognize; if a letter is followed by a colon,
     the option is expected to have an argument, or group of
     arguments, which must be separated from it by white space.

     Each time it is invoked, getopts will place the next option
     in the shell variable name and the index of the next argu-
     ment to be processed in the shell variable OPTIND.  Whenever
     the shell or a shell procedure is invoked, OPTIND is ini-
     tialized to 1.

     When an option requires an option-argument, getopts places
     it in the shell variable OPTARG.

     If an illegal option is encountered, ? will be placed in
     name.

     When the end of options is encountered, getopts exits with a
     non-zero exit status.  The special option ``--'' may be used
     to delimit the end of the options.

     By default, getopts parses the positional parameters.  If
     extra arguments (arg ...)  are given on the getopts command
     line, getopts will parse them instead.

     /usr/lib/getoptcvt reads the shell script in file, converts
     it to use getopts instead of getopt(1), and writes the
     results on the standard output.

     -b   the results of running /usr/lib/getoptcvt will be port-
          able to earlier releases of the UNIX system.
          /usr/lib/getoptcvt modifies the shell script in file so
          that when the resulting shell script is executed, it
          determines at run time whether to invoke getopts or
          getopt(1).





                         Printed 1/15/91                   Page 1





GETOPTS(1-SysV)     RISC/os Reference Manual      GETOPTS(1-SysV)



     So all new commands will adhere to the command syntax stan-
     dard described in intro(1), they should use getopts or
     getopt(3) to parse positional parameters and check for
     options that are legal for that command (see WARNINGS,
     below).

EXAMPLE
     The following fragment of a shell program 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
     option-argument:

          while getopts abo: c
          do
               case $c in
               a | b)    FLAG=$c;;
               o)        OARG=$OPTARG;;
               \?)       echo $USAGE
                         exit 2;;
               esac
          done
          shift `expr $OPTIND - 1`

     This code will accept any of the following as equivalent:

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

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

WARNING
     Although the following command syntax rule (see intro(1))
     relaxations are permitted under the current implementation,
     they should not be used because they may not be supported in
     future releases of the system.  As in the EXAMPLE section
     above, a and b are options, and the option o requires an
     option-argument:
          cmd -aboxxx file
     (Rule 5 violation:  options with option-arguments must not
     be grouped with other options)

          cmd -ab -oxxx file
     (Rule 6 violation:  there must be white space after an
     option that takes an option-argument)

     Changing the value of the shell variable OPTIND or parsing
     different sets of arguments may lead to unexpected results.



 Page 2                  Printed 1/15/91





GETOPTS(1-SysV)     RISC/os Reference Manual      GETOPTS(1-SysV)



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




















































                         Printed 1/15/91                   Page 3



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