getopts
não pode manipular argumentos longos:
$ ( set -- --help ; while getopts -- -help opt; do echo "$opt"; done )
-
h
e
l
p
Se você deseja lidar com argumentos longos, é necessário escrever seu próprio analisador.
A versão GNU do getopt
suporta as opções longas, mas seria melhor não usá-lo; não é portátil, e quebra em certos tipos de argumentos. Por exemplo, ele não pode analisar adequadamente os argumentos com espaço em branco neles.