[Gelöst] Bash: Parameter in Variable wird als eins behandelt

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
derpascal
Beiträge: 25
Registriert: 13.07.2012 15:31:42

[Gelöst] Bash: Parameter in Variable wird als eins behandelt

Beitrag von derpascal » 05.07.2013 13:26:12

Moin,

ich baue in einem Bashscript eine Variable mit vielen Parametern zusammen, so wie hier:

Code: Alles auswählen

param=""
[ $BEDINGUNG ] && param="$param -parameter1 value"
[ $BEDINGUNG ] && param="$param -parameter2 value"
[ $BEDINGUNG ] && param="$param -parameter3 value"
Danach will ich ein Programm mit diesen Parametern ausführen:

Code: Alles auswählen

programm $param
Ich hatte es erwartet, dass es wie folgt ausgeführt wird:

Code: Alles auswählen

Programm -parameter1 value -paramer2 value -parameter3 value
Jedoch wird es wie folgt ausgeführt:

Code: Alles auswählen

Programm "-parameter1 value -paramer2 value -parameter3 value"
Die Parameter, die in $param stehen werden als ein einziger Parameter ausgeführt wird. Wie bekomme ich es hin, dass die Parameter wie von mir erwartet einzeln interpretiert wird?

Danke und Gruss

Pascal
Zuletzt geändert von derpascal am 05.07.2013 23:43:11, insgesamt 1-mal geändert.

wanne
Moderator
Beiträge: 7550
Registriert: 24.05.2010 12:39:42

Re: Bash: Parameter in Variable wird als eins behandelt

Beitrag von wanne » 05.07.2013 13:32:23

Anführungszeichen weg...
Oder ein echo rein.
rot: Moderator wanne spricht, default: User wanne spricht.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Bash: Parameter in Variable wird als eins behandelt

Beitrag von rendegast » 05.07.2013 15:22:51

derpascal hat geschrieben:

Code: Alles auswählen

programm $param
Sicher, daß Du nicht doch

Code: Alles auswählen

programm "$param"
ausführst?

Code: Alles auswählen

$ param="--fg white --bg blue"

$ xtermcontrol "$param"
xtermcontrol: unrecognized option '--fg white --bg blue'
Usage: xtermcontrol [OPTIONS]...
Try `xtermcontrol --help' for more information.

$ xtermcontrol $param
(wechselt nach weiß auf blau)
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

derpascal
Beiträge: 25
Registriert: 13.07.2012 15:31:42

Re: Bash: Parameter in Variable wird als eins behandelt

Beitrag von derpascal » 05.07.2013 23:42:52

Moin,

Danke rendegast, dein Post hat mich auf die Idee gebracht, dass ich den Fehler gefunden habe

:cry: Ich habe IFS verändert und dort war kein Leerzeichen mehr drin :cry:

Danke auch an dich wanne, ich habe den kompletten Code nochmal durch geguckt und dafür noch andere Fehler gefunden ;-)

Gruss

Pascal

Antworten