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.   optstring  con-
       tains  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.
