Este script requer pelo menos um argumento, se não exibir informações de uso. Deve fazer echo $USAGE >&2
, pois isso é um erro. Outros scripts podem funcionar com zero argumentos, então você terá que modificar. Assim como alguns não aceitam o argumento i
.
"?", vs *
Sim, eles são diferentes:
-
"?"
diz para procurar um?
. Isso é o que getopts retorna quando encontra uma opção que não espera (opção inválida). -
*
diz para o caso, fazer isso é você não encontrar nenhum outro jogo. Isso não deveria acontecer, mas pode acontecer. Provavelmente indica um bug no getopts, ou mais provavelmente o seu programa (veja programação defensiva).