Atualmente, estou escrevendo um script Bash com os seguintes requisitos:
- deve ser executado em uma ampla variedade de plataformas Unix / Linux
- deve suportar opções curtas e longas (GNU)
Eu sei que getopts
seria a maneira preferida em termos de portabilidade, mas o AFAIK não suporta opções longas.
getopt
suporta opções longas, mas o BashGuide recomenda fortemente:
Nunca use getopt (1). O getopt não pode manipular cadeias de argumentos vazias ou argumentos com espaço em branco incorporado. Por favor, esqueça que ele já existiu.
Portanto, ainda há a opção de análise manual. Isso é propenso a erros, produz bastante código padrão, e eu preciso lidar com os erros sozinho (acho getopt(s)
que o tratamento de erros sozinho).
Então, qual seria a escolha preferida neste caso?