Die Bash unterstützt denn Skriptschreiber leider nicht mit Optionen der Art --lang-option. Hier ein ganz simpler Weg, wie man dieses Verhalten rudimentär emulieren kann.
## Bash hat kein getopt_long, wir wollen aber trotzdem sowas wie --scripts haben. ## Deswegen nehmen wir die Parameter manuell auseinander und sortieren alle --* ## Parameter erstmal aus for opt in $@; do case $opt in --*) LONG_OPTS="$LONG_OPTS $opt" ;; *) OPTS="$OPTS $opt" ;; esac done ## Alle "kurzen" Optionen wieder zu positional params machen set -- $OPTS ######################################################################
Danach ist die Variable $LONG_OPTS ein String, in dem durch Leerzeichen getrennt die einzelnen langen Optionen drin stehen. Diese kann man z.B. wie folgt auswerten:
for lo in $LONG_OPTS; do case $lo in --lange-option-1) var_1="Wert 1" ;; --lange-option-2) echo "Hurra,. --lange-option-2 war gesetzt" ;; *) echo "Unbekannte Option: $lo" esac done