Attualmente sto scrivendo uno script Bash che ha i seguenti requisiti:
- dovrebbe funzionare su un'ampia varietà di piattaforme Unix / Linux
- dovrebbe supportare entrambe le opzioni short e (GNU) long
So che getopts
sarebbe il modo preferito in termini di portabilità ma AFAIK non supporta opzioni lunghe.
getopt
supporta opzioni lunghe ma BashGuide sconsiglia vivamente:
Non usare mai getopt (1). getopt non può gestire stringhe di argomenti vuote o argomenti con spazi bianchi incorporati. Per favore, dimentica che è mai esistito.
Quindi, c'è ancora l'opzione di analisi manuale. Questo è soggetto a errori, produce un po 'di codice boilerplate e ho bisogno di gestire gli errori da solo (immagino getopt(s)
che gestiscano gli errori da soli).
Quindi, quale sarebbe la scelta preferita in questo caso?