getopt Problem ...
Verfasst: Freitag 7. November 2025, 10:04
Ich versuche meine Kommandozeile mit getopt zu analysieren. Das ist gar nicht das Problem, sondern mehr die Reihenfolge.
Ich habe mehrere Optionen, u.a. die Option "--profile=<xxx>.
In diesem Fall soll aus einer Config-Datei der ABschnitt xxx geladen werden. Tut es auch.
Nun könnten aber Angaben aus xxx durch weitere Argumente der Kommandozeile überschrieben werden.
Also etwa so: --profiel=xxx -i xyz -d abc-
Dann würde zuerst der Abschnitt geladen und dessen Angaben durch -i und -d überschrieben. Die Einzelparameter hätten also Priorität. DUrchaus gewünscht.
-i abc -d xyz --profile=xxx würde aber die Einzelparameter mit Standards aus xxx überschreiben; was ich vermeiden will.
Ich dachte nun, zunächst die Kommandozeile NUR auf das Profil hin auszuwerten; die EInzelangaben müssten dann aber ignoriert werden.
In einer zweiten Funktion würde ich dann Einzelparameter auswerten und das Profil ignorieren.
Wie ghet das? Momentan bekomme ich Fehlermeldungen wenn ich nur das Profil auswerte, da DIESE Funtkion die anderen nicht kennt.
Oder gibt es noch was eleganteres?
Ich habe mehrere Optionen, u.a. die Option "--profile=<xxx>.
In diesem Fall soll aus einer Config-Datei der ABschnitt xxx geladen werden. Tut es auch.
Nun könnten aber Angaben aus xxx durch weitere Argumente der Kommandozeile überschrieben werden.
Also etwa so: --profiel=xxx -i xyz -d abc-
Dann würde zuerst der Abschnitt geladen und dessen Angaben durch -i und -d überschrieben. Die Einzelparameter hätten also Priorität. DUrchaus gewünscht.
-i abc -d xyz --profile=xxx würde aber die Einzelparameter mit Standards aus xxx überschreiben; was ich vermeiden will.
Ich dachte nun, zunächst die Kommandozeile NUR auf das Profil hin auszuwerten; die EInzelangaben müssten dann aber ignoriert werden.
In einer zweiten Funktion würde ich dann Einzelparameter auswerten und das Profil ignorieren.
Wie ghet das? Momentan bekomme ich Fehlermeldungen wenn ich nur das Profil auswerte, da DIESE Funtkion die anderen nicht kennt.
Oder gibt es noch was eleganteres?