Unix‎ > ‎Solaris‎ > ‎Solaris man pages‎ > ‎1‎ > ‎


     getoptcvt - convert to getopts to parse command options

     /usr/lib/getoptcvt [-b] filename


     /usr/lib/getoptcvt reads the shell script in filename,  con-
     verts  it  to  use getopts instead of getopt, and writes the
     results on the standard output.

     getopts is a built-in Bourne shell  command  used  to  parse
     positional  parameters  and  to check for valid options. See
     sh(1). It supports all applicable rules of the command  syn-
     tax  standard (see Rules 3-10, intro(1)).  It should be used
     in place of the  getopt  command.  (See  the  NOTES  section
     below.)  The syntax for the shell's built-in getopts command

     getopts optstring name [ argument...]

     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 places the next  option  in
     the  shell  variable name and the index of the next argument
     to be processed in the shell variable OPTIND.  Whenever  the
     shell or a shell script is invoked, OPTIND is initialized to

     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

     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  (argument  ...)   are given on the getopts
     command line, getopts parses them instead.

     So that all new commands will adhere to the  command  syntax
     standard  described  in intro(1), they should use getopts or
     getopt to parse positional parameters and check for  options
     that  are  valid  for  that  command  (see the NOTES section

     The following option is supported:

     -b       Makes the  converted  script  portable  to  earlier
              releases  of  the  UNIX  system. /usr/lib/getoptcvt
              modifies the shell script in filename so that  when
              the  resulting  shell script is executed, it deter-
              mines at run time  whether  to  invoke  getopts  or

     Example 1: Processing the arguments for a command

     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
           case $c in
           a | b)     FLAG=$c;;
           o)         OARG=$OPTARG;;
           \?)        echo $USAGE
                      exit 2;;
     shift `expr $OPTIND - 1`

     Example 2: Equivalent code expressions

     This code accepts any of the following as equivalent:

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

     See environ(5) for descriptions of the following environment
     variables  that  affect  the execution of getopts: LC_CTYPE,

     OPTIND          This variable is used by  getoptcvt  as  the
                     index of the next argument to be processed.

     OPTARG          This variable is used by getoptcvt to  store
                     the  argument  if  an  option is using argu-

     The following exit values are returned:

     0        An option, specified or unspecified  by  optstring,
              was found.

     >0       The end of options  was  encountered  or  an  error

     See attributes(5) for descriptions of the  following  attri-

    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    | Availability                | SUNWcsu                     |
    | CSI                         | enabled                     |

     intro(1), getopts(1), sh(1), shell_builtins(1),  getopt(3C),

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

     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 EXAMPLES section
     above, -a and -b are options, and the option -o requires  an
     option-argument.   The  following  example  violates Rule 5:
     options with option-arguments must not be grouped with other

     example% cmd -aboxxx filename

     The following example violates Rule 6: there must  be  white
     space after an option that takes an option-argument:

     example% cmd -ab oxxx filename

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

Man pages from Solaris 10 Update 8. See docs.sun.com and www.oracle.com for further documentation and Solaris information.