Derzeit schreibe ich ein Bash-Skript, das die folgenden Anforderungen erfüllt:
- Es sollte auf einer Vielzahl von Unix / Linux-Plattformen laufen
- Es sollte sowohl kurze als auch (GNU) lange Optionen unterstützen
Ich weiß, dass getopts
dies in Bezug auf die Portabilität der bevorzugte Weg wäre, aber AFAIK unterstützt keine langen Optionen.
getopt
unterstützt lange Optionen, aber der BashGuide rät dringend davon ab:
Verwenden Sie niemals getopt (1). getopt kann keine leeren Argumente, Strings oder Argumente mit eingebettetem Whitespace verarbeiten. Bitte vergessen Sie, dass es jemals existiert hat.
Es besteht also weiterhin die Möglichkeit des manuellen Parsens. Dies ist fehleranfällig, führt zu ziemlich viel Code auf der Kesselplatte und ich muss Fehler selbst behandeln (ich denke getopt(s)
, Fehler werden von selbst behoben).
Was wäre in diesem Fall die bevorzugte Wahl?