Seite 1 von 1

optparse OptionParser addoption

Verfasst: Dienstag 23. August 2016, 12:11
von sebastian0202
Hallo!


Ich rufe ein Skript auf und übergebe bestimmte Optionen an dieses.
Für's einlesen der Optionen nutze ich von optparse den OptionParser.

Das Skript erweitert das mv Kommando der Bash um Dinge die ich unbedingt brauche. (Spezialfall)

Eine der Optionen(-f) speichere ich vom type="string" und action="store".
Wenn ich den Wert dieser Option am Ende mit einem * abschließe scheint es, als würde der OptionParser diesen ersetzen.

Bsp.:
skript_mv -f path_to_file* -> path_to_file
skript_mv -f "path_to_file*" -> path_to_file*

Wieso muss ich quotes setzen um das * zubehalten?
Ich denke, durch type=string ist der Rückgabewert generell vom Typ String?

Es gibt auch keine weiteren Parameter für type die mir was bringen.

Irgendwas muss ich ja übersehen oder falsch annehmen. :cry:

Re: optparse OptionParser addoption

Verfasst: Dienstag 23. August 2016, 12:18
von Liffi
Die bash würde sonst versuchen, das Sternchen aufzulösen. Das ist also ein Verhalten der bash und unabhängig von deinem Programm.

Re: optparse OptionParser addoption

Verfasst: Dienstag 23. August 2016, 13:10
von sebastian0202
Achso, Danke!

Deswegen wurde aus dem 'path_to_file.*' -> 'path_to_real_file'
Also passiert das alles bevor ich die Parameter an das Skript übergebe.
Gibt es die Möglichkeit, mittels dem Aufruf /bin/bash eine Option mitzuschicken, die dieses unterbindet?
Vermutlich eher nicht.

Ich muss mich also mit den Quotes anfreunden.

Re: optparse OptionParser addoption

Verfasst: Dienstag 23. August 2016, 13:22
von Sirius3
@sebastian0202: es wäre komisch, wenn die erwartet Bash-Verarbeitung plötzlich nicht angewendet würde. Um das zu unterdrücken gibt es ja 'Anführungszeichen', bzw. die Parameterform
[codebox=bash file=Unbenannt.bsh]skript_mv -f=path_to_file*[/code]