L'interfaccia della riga di comando Linux/GNU segue lo standard POSIX. Questo è notato da GNU nei loro standard:http://www.gnu.org/prep/standards/html_node/Command_002dLine-Interfaces.html.
Anche la sintassi della riga di comando fa parte della specifica Single Unix, sebbene --long-options sia un'innovazione GNU IIRC.
Vedi qui:http://pubs.opengroup.org/onlinepubs/7908799/xbd/utilconv.html
Ma sì, questo standard è implementato come getopt.
Un breve riassunto del thread:
-
La CLI dovrebbe visualizzare la guida in caso di parametri mancanti o errati oltre all'eventuale messaggio di errore.
-
Dovresti usare
-
per un flag o un'opzione a lettera singola e--
per un'opzione lunga, ad esempio-a
e--all
-
Tutti i programmi dovrebbero supportare due opzioni standard:
-v
--version
e-h
--help
.-h
e--help
=> Fornisci messaggio di utilizzo ed esci-v
e--version
=> Mostra la versione del programma ed esci
Vedi i collegamenti (IEEE e GNU getopt) forniti in questa risposta https://stackoverflow.com/a/8957246
Generalmente sì.
- IEEE
- GNU getopt
ESR ha raccolto molte informazioni su questo nel suo libro "The Art of UNIX Programming". Ecco uno snippet.
-un
Tutti (senza discussione). Se esiste un'opzione --all in stile GNU, che -a sia tutt'altro che un sinonimo sarebbe abbastanza sorprendente. Esempi:fuser(1), fetchmail(1).Aggiungi, come in tar(1). Questo è spesso associato a -d per eliminare.
-b
Dimensione del buffer o del blocco (con argomento). Imposta una dimensione del buffer critica o (in un programma che ha a che fare con l'archiviazione o la gestione dei supporti di archiviazione) imposta una dimensione del blocco. Esempi:du(1), df(1), tar(1).Lotto. Se il programma è naturalmente interattivo, -b può essere utilizzato per sopprimere i prompt o impostare altre opzioni appropriate per accettare l'input da un file piuttosto che da un operatore umano. Esempio:flessibile(1).
-c
Comando (con argomento). Se il programma è un interprete che normalmente accetta comandi dallo standard input, è previsto che l'opzione di un argomento -c gli venga passata come una singola riga di input. Questa convenzione è particolarmente valida per le shell e gli interpreti simili a shell. Esempi:sh(1), ash(1), bsh(1), ksh(1),python(1). Confronta -e sotto.Verifica (senza argomento). Controlla la correttezza degli argomenti del file al comando, ma non eseguire effettivamente l'elaborazione normale. Usato frequentemente come opzione di controllo della sintassi dai programmi che interpretano i file di comando. Esempi:getty(1), perl(1).
Vedi l'elenco completo su http://catb.org/~esr/writings/taoup/html/ch10s05.html