Questo è più circa l'invocazione di un programma, che qualsiasi linguaggio o parser (anche se sono sicuro che la scelta della libreria parser può dipendere da questo). Vedi, ho usato un sacco di utility da riga di comando di Linux. E ci sono alcuni modelli ovvi; '-' precede una singola lettera per le opzioni brevi, più opzioni che non accettano argomenti possono essere combinate, '-' precede le versioni lunghe delle opzioni e così via.Esistono degli standard per gli switch e gli argomenti della riga di comando di Linux?
Tuttavia, in alcuni casi, la capitalizzazione viene utilizzata per invertita un'opzione. Quindi, '-d' potrebbe significare eseguire come daemon, ma '-D' sarebbe a non eseguito come daemon. (Perché non omettere l'opzione solo se non la vuoi? Non è mai stato chiaro, ma in realtà è piuttosto comune, quindi immagino ci sia un motivo.) Ma in alcuni programmi, una capitale è un'opzione completamente non correlata; se '-d' viene eseguito come daemon, '-D' potrebbe essere per abilitare la modalità di debug. C'è una sorta di principio dominante dietro a questo, e qual è il migliore da scegliere? O abbiamo solo a che fare con "qualunque cosa funzioni"?
Ci sono anche alcuni comandi che, oltre alle opzioni (o al posto di) con argomenti, prendono solo argomenti solitari. cp è un buon esempio di questo; a parte una coppia usata raramente, l'ultimo argomento che riceve è presumibilmente la destinazione, e si presume che qualsiasi argomento tra l'elenco di opzioni e la destinazione sia una fonte. Esiste una regola empirica quando è "ok" affidarsi a un ordine del genere, invece di utilizzare i flag di opzione espliciti con argomenti?
Non esiste uno standard universale per le opzioni della riga di comando, anche se le convenzioni 'getopt' sono un buon punto di partenza. Per rispondere alla tua domanda sulle opzioni di inversione, l'impostazione predefinita viene in genere specificata in un file di configurazione, quindi è necessario sia l'interruttore di abilitazione forza che i pulsanti di disabilitazione forzata. – Borealid