Hi,
ich habe da ein kleines Problem und hoffe das mir jemand helfen kann.
Ich versuche gerade ein Shell-Script zu schreiben das Befehle und Meldungen auf einem remote Rechner ausführen und anzeigen soll.
Die Syntax ist folgende:
program --host=192.168.xxx.xxx --message="Window(hallo)"
Um die ganze Sache zu verkürzen habe ich den ersten Teil bis --message= in eine Variable gepackt.
MESSAGE="program --host=192.168.xxx.xxx --message="
AW="Window(hallo)"
Wenn ich nun im script $MESSAGE$AW ausführe klappt das wunderbar.
Nun möchte ich aber das (hallo) durch eine Variable, z.B. ($V1) ersetzen und diese im Script
ändern.
AW="Window($V1)"
wenn ich also
V1=hallo
$MESSAGE$AW
sleep3
V1=Welt
$MESSAGE$AW
ausführe klappt das nicht weil in die Klammer nichts eingesetzt wird.
program --host=192.168.xxx.xxx '--message=Window()'
Ich hoffe das mir jemand einen Tipp geben kann
danke
vobie
[gelöst] Variable innerhalb einer runden Klammer ändern
[gelöst] Variable innerhalb einer runden Klammer ändern
Zuletzt geändert von vobie am 11.04.2010 18:26:44, insgesamt 1-mal geändert.
Es gibt keine dummen Fragen. Aber leider viele dumme Antworten.
Re: Shell-Script Variable innerhalb einer runden Klammer änd
Das sind auch Variablen und keine Platzhalter, daher zum Zeitpunkt der Ausführung von
sollte in V1 was drinstehen, oder es wird nachher auch nichts in der Variablen AW zwischen den Klammern stehen
Gruß
gms
Code: Alles auswählen
AW="Window($V1)"
Gruß
gms
Re: Shell-Script Variable innerhalb einer runden Klammer änd
Aha,
aber mit V1=Welt setze ich doch die Variable V1 mit dem Wert Welt ?
gruß
vobie
aber mit V1=Welt setze ich doch die Variable V1 mit dem Wert Welt ?
gruß
vobie
Es gibt keine dummen Fragen. Aber leider viele dumme Antworten.
Re: Shell-Script Variable innerhalb einer runden Klammer änd
Einfacher ist's wenn du die Variablen nicht verschachtelst. Zum Beispiel so:
btw: In der Shell sollte man selbstdefinierte Variablenbezeichner aus Kleinbuchstaben wählen um Kollisionen zu vermeiden. Die Variablenbezeichner in Großbuchstaben sind für die vordefinierten Variablen der Shell reserviert.
Code: Alles auswählen
cmd="program --host=192.168.xxx.xxx --message="
msg="Window"
arg="hallo"
$cmd"$msg($arg)"
sleep 3
arg=Welt
$cmd"$msg($arg)"
Use ed once in a while!
Re: Shell-Script Variable innerhalb einer runden Klammer änd
vielen Dank, so geht'sMeillo hat geschrieben:Einfacher ist's wenn du die Variablen nicht verschachtelst. Zum Beispiel so:btw: In der Shell sollte man selbstdefinierte Variablenbezeichner aus Kleinbuchstaben wählen um Kollisionen zu vermeiden. Die Variablenbezeichner in Großbuchstaben sind für die vordefinierten Variablen der Shell reserviert.Code: Alles auswählen
cmd="program --host=192.168.xxx.xxx --message=" msg="Window" arg="hallo" $cmd"$msg($arg)" sleep 3 arg=Welt $cmd"$msg($arg)"
gruß
vobie
Es gibt keine dummen Fragen. Aber leider viele dumme Antworten.
Re: Shell-Script Variable innerhalb einer runden Klammer änd
ja, aber anscheinend wird AW schon vorher gesetzt, also hat das keinen Einfluß auf den Wert von AWvobie hat geschrieben:Aha,
aber mit V1=Welt setze ich doch die Variable V1 mit dem Wert Welt ?
jedenfalls hier nicht:
vobie hat geschrieben: wenn ich also
V1=hallo
$MESSAGE$AW
sleep3
V1=Welt
$MESSAGE$AW