       getopts optstring name [ arg ... ]
              Checks  arg  for legal options.  If arg is 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.   optstring contains the letters that
              getopts recognizes.  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.

              A  leading  :  in optstring causes getopts to store
              the letter of the invalid option in OPTARG, and  to
              set  name  to  `?' for an unknown option and to `:'
              when a  required  option  is  missing.   Otherwise,

              getopts  prints  an error message.  The exit status
              is nonzero when there are no more options.
