(isso é muito longo para ser um comentário e muito ruim para ser uma resposta)
getopt
tenta detectar a opção de letra única com -
(sinal de menos) e opção com argumento.
Ele pára quando não há opção (não mais) (não -b
, não -a foo
). Não analisa a lista completa.
Então, a resposta para a segunda pergunta é sim.
Você pode desejar escrever um analisador getopt por conta própria e lidar com essa questão são -foo
--bar
arguements (por exemplo, um arquivo, uma string) ou uma opção.
por um longo tempo a tradição era colocar as opções primeiro, argumento depois, precisamente para que você soubesse quando a opção parasse, e se -foo
fosse um nome de arquivo real.