The help text of getopts says: > Getopts normally parses the positional parameters ($0 - $9), but if > more arguments are given, they are parsed instead.
The positional parameter $0 (is it even called that way) is not parsed by getopts. Its only use might be in error messages, but I'm not sure about it. The "instead" in "they are parsed instead" is totally wrong. $1 to $9 are always parsed, no matter if there are more than 10 positional parameters or not.