Leerzeichen beim Programmaufruf mit Parameterübergabe

11/10/2007 - 10:48 von Knut Rauscher | Report spam
Moin,

,-
| DVDMENU="dvd-menu"
|
| for i in * ; do
| test -d "$i" && DVDMENU="$DVDMENU -t '"$i"' -f `echo "$i" | sed 's/ /_/g'`.xml"
| done
|
| echo "$DVDMENU -n 'Freie- und Hansestadt Hamburg' -b "$BGIMAGE" -p -mp2"
`-

beim Ausführen des oben genannten Shell-Script gibt echo
mir am Ende ein sauber zusammengesetzten String in der Shell aus.

Diesen kann ich nun mit Copy-Paste anschließend direkt auf der
Shell starten. Das alles klappt absolut einwandfrei.

Nun würde ich gerne das Ausführen direkt aus dem Script starten lassen.
Dafür habe ich die Zeile wie folgt abgeàndert:

`echo "$DVDMENU -n 'Freie- und Hansestadt Hamburg' -b "$BGIMAGE" -p -mp2"`

Nur leider funktioniert es nicht, Probleme machen die Leerzeichen und
ggf. die "-" Zeichen.

Ich habe jetzt schon alles hoch unter runter gequotet und weiß einfach
nicht was dort falsch làuft. Auf jeden Fall meckert dvd-menu, daß die
Syntax nicht stimmt.

Wer kann mit ggf. einen Tipp geben was ich falsch mache?

Schöne Grüße

sendet Knut
 

Lesen sie die antworten

#1 Paul Hink
11/10/2007 - 12:10 | Warnen spam
Knut Rauscher wrote:

,-
| DVDMENU="dvd-menu"
|
| for i in * ; do
| test -d "$i" && DVDMENU="$DVDMENU -t '"$i"' -f `echo "$i" | sed 's/ /_/g'`.xml"
| done
|
| echo "$DVDMENU -n 'Freie- und Hansestadt Hamburg' -b "$BGIMAGE" -p -mp2"
`-

beim Ausführen des oben genannten Shell-Script gibt echo mir am Ende
ein sauber zusammengesetzten String in der Shell aus.

Diesen kann ich nun mit Copy-Paste anschließend direkt auf der Shell
starten. Das alles klappt absolut einwandfrei.

Nun würde ich gerne das Ausführen direkt aus dem Script starten
lassen.



ungetestet:

| DVDMENU=(dvd-menu)
|
| for i in * ; do
| test -d "$i" && DVDMENU=("${DVDMENU[@]}" -t "$i" -f "${i// /_}.xml")
| done
|
| DVDMENU=("${DVDMENU[@]}" -n "Freie- und Hansestadt Hamburg")
| DVDMENU=("${DVDMENU[@]}" -b "$BGIMAGE" -p -mp2)
|
| "${DVDMENU[@]}"

Ähnliche fragen