optparse OptionParser addoption

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
sebastian0202
User
Beiträge: 168
Registriert: Montag 9. Mai 2016, 09:14
Wohnort: Berlin

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:
Liffi
User
Beiträge: 153
Registriert: Montag 1. Januar 2007, 17:23

Die bash würde sonst versuchen, das Sternchen aufzulösen. Das ist also ein Verhalten der bash und unabhängig von deinem Programm.
sebastian0202
User
Beiträge: 168
Registriert: Montag 9. Mai 2016, 09:14
Wohnort: Berlin

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.
Sirius3
User
Beiträge: 18335
Registriert: Sonntag 21. Oktober 2012, 17:20

@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]
Antworten