getopts optstring name [ arg ... ]
       Checks the args for legal options.  If the args are
       omitted, use the positional  parameters.   A  valid
       option  argument  begins  with  a `+' or a `-'.  An
       argument not beginning with a `+' or a `-', or  the
       argument  `--', ends the options.  Note that a sin-
       gle `-' is not considered a valid option  argument.
       optstring  contains the letters that getopts recog-
       nizes.  If a letter is  followed  by  a  `:',  that
       option  is  expected  to  have  an  argument.   The
       options can  be  separated  from  the  argument  by
       blanks.

       Each  time it is invoked, getopts places the option
       letter  it  finds  in  the  shell  parameter  name,
       prepended  with  a  `+' when arg begins with a `+'.
       The index of the next arg is stored in OPTIND.  The
       option argument, if any, is stored in OPTARG.

       The  first  option to be examined may be changed by
       explicitly assigning to OPTIND.  OPTIND has an ini-
       tial  value  of  1, and is normally reset to 1 upon
       exit from a shell function.  OPTARG  is  not  reset
       and  retains its value from the most recent call to
       getopts.  If either of OPTIND or OPTARG is  explic-
       itly  unset,  it  remains  unset,  and the index or
       option argument is not stored.  The  option  itself
       is still stored in name in this case.

       A  leading `:' in optstring causes getopts to store
       the letter of any invalid option in OPTARG, and  to
       set  name  to  `?' for an unknown option and to `:'
       when a  required  option  is  missing.   Otherwise,
       getopts  sets  name to `?' and prints an error mes-
       sage when an option is invalid.  The exit status is
       nonzero when there are no more options.
