A maneira oficial e melhor é usar o getopts embutido para analisar as opções da linha de comando.
Veja a man page para mais informações.
Uma nota pode ser importante: bash não suporta opções longas.
Se você gosta de scripts para lidar com opções longas, você tem dois shells que os suportam: ksh93 e bosh . Ambos os shells suportam opções longas da maneira como são suportadas pela função getopt(3) no libc no Solaris. Veja a man page do bosh (a partir de agora na página 43:
getopts "f:(file)(input-file)o:(output-file)" OPT
suporta, por exemplo, uma opção -f com um argumento e essa opção tem uma opção longa
alias --file e um segundo alias para esta opção --input-file
O ksh93 também suporta isto, apesar de não estar documentado na página do manual do ksh93.