Diferencia entre $ OPTIND y $ #

Oye, ¿hay alguna diferencia entre $OPTIND y $# ?
¿Hay alguna razón para que uses $OPTIND con getopts, no $# ?

$OPTIND indica cuánto ha progresado al analizar la list de parameters (es decir, para las opciones), mientras que $# es simplemente el número de parameters. No están realmente relacionados, porque $OPTIND cambia, mientras que $# no (a less que use shift ).

La descripción POSIX de getopts entra en detalle.