Hier geht es mehr um den Aufruf eines Programms als um eine Sprache oder einen Parser (obwohl ich sicher bin, dass die Wahl der Parser-Bibliothek davon abhängen kann). Sehen Sie, ich habe viele Linux-Kommandozeilenprogramme benutzt. Und es gibt einige offensichtliche Muster: '-' steht vor einem einzelnen Buchstaben für kurze Optionen, mehrere Optionen, die keine Argumente benötigen, können kombiniert werden, '--' steht vor langen Versionen von Optionen, und so weiter.
In einigen Fällen wird die Großschreibung jedoch verwendet, um invertieren eine Option. So könnte '-d' bedeuten, dass man als Daemon läuft, aber '-D' würde bedeuten, dass man no als Daemon laufen. (Warum lassen Sie die Option nicht einfach weg, wenn Sie sie nicht wollen? Das war mir nie klar, aber es ist eigentlich ziemlich üblich, also denke ich, dass es dafür einen Grund geben muss.) Aber in einigen Programmen ist ein Kapital eine völlig unabhängige Option; wenn '-d' als Daemon ausgeführt wird, könnte '-D' den Debug-Modus aktivieren. Gibt es eine Art übergreifendes Prinzip dahinter, und welche Option ist die beste? Oder geht es nur um "was auch immer funktioniert"?
Es gibt auch einige Befehle, die zusätzlich zu (oder anstelle von) Optionen mit Argumenten nur einzelne Argumente annehmen. cp ist ein gutes Beispiel dafür; abgesehen von ein paar selten verwendeten Umschaltern wird das letzte Argument, das es erhält, als Ziel angenommen, und alle Argumente zwischen der Optionsliste und dem Ziel werden als Quellen angenommen. Gibt es eine Faustregel, wann es "okay" ist, sich auf eine solche Reihenfolge zu verlassen, anstatt explizite Optionsflags mit Argumenten zu verwenden?