GNU/Linux >> Linux Esercitazione >  >> Linux

Getopt, Getopts o analisi manuale:cosa usare quando voglio supportare sia le opzioni corte che lunghe?

Attualmente sto scrivendo uno script Bash che ha i seguenti requisiti:

  • Dovrebbe funzionare su un'ampia varietà di piattaforme Unix/Linux
  • Dovrebbe supportare sia le opzioni short che (GNU) long

So che getopts sarebbe il modo preferito in termini di portabilità ma AFAIK non supporta opzioni lunghe.

getopt supporta le opzioni lunghe ma BashGuide lo sconsiglia vivamente:

Non usare mai getopt(1). getopt non può gestire stringhe di argomenti vuote o argomenti
con spazi vuoti incorporati. Per favore, dimentica che è mai
esistito.

Quindi, c'è ancora l'opzione di analisi manuale. Questo è soggetto a errori, produce un po 'di codice standard e ho bisogno di gestire gli errori da solo (credo getopt(s) eseguire la gestione degli errori da soli).

Quindi, quale sarebbe la scelta preferita in questo caso?

Risposta accettata:

Se deve essere portatile su una vasta gamma di Unice, dovresti attenersi a POSIX sh. E AFAIU lì non hai altra scelta che gestire manualmente gli argomenti a rotazione.


Linux
  1. Che cos'è un comando Chown in Linux e come usarlo

  2. Che cos'è un comando cURL e come utilizzarlo?

  3. Che cos'è un TAM e perché potresti volerlo diventare?

  4. Quando e perché dovrei usare Apt-get Update?

  5. Voglio aspettare sia un descrittore di file che un mutex, qual è il modo consigliato per farlo?

Che cos'è chroot jail e come usarlo?

Come utilizzare i comandi e le opzioni SFTP

Comando file Linux:cosa fa e come usarlo

Linux Tail Command:cos'è e come usarlo

Che cos'è Terraform e come installarlo e utilizzarlo su AWS EC2

Che cos'è una macchina virtuale e perché usarla?