View previous topic :: View next topic |
Author |
Message |
Martini Tux's lil' helper
Joined: 30 Sep 2002 Posts: 141
|
Posted: Wed Mar 01, 2006 9:24 pm Post subject: Frage zu php und shell-script Variablen |
|
|
Hallo
Ich habe mal eine Frage bezüglich Varibalenübergabe von einem php-script an ein shell-script. Vielleicht kann mir da jemand weiterhelfen.
Folgende Situation:
Ich habe ein php-script auf Rechner-A laufen welches auf Rechner-B ein shell-script via ssh (mit pubkey) ausführen soll. Das klappt auch ganz gut. Allerdings übergebe ich im php-script eine Variable, die Leerzeichen oder auch Sonderzeichen erhalten kann.
Nun möchten ich diese Variable gerne im shell-script auf dem Rechner-B als kompletten string erhalten und zwar mittels
und auch gerne weiterverarbeiten.
Es werden insgesamt 6 Variablen übergeben.
Wenn jetzt jetzt der zweite Parameter (des php-scripts) bei der Übergabe mehrere einzelne Wörter enthält, wird logischerweise das shell-script als 3ten Paramter Teile des 2ten enthalten.
Klingt logisch, aber irgendwie ... komm gerade nicht weiter.
Kann mir mal jemand die Tomaten von den Augen wischen?
Beispiel:
php-script
Code: |
exec ("su - user -c \"ssh user@user-rechner -C /usr/local/bin/program $var1 $var2 .... &\" ");
|
shell-script
Code: |
var1=$1
var2=$2
var3=$3
.
.
|
Danke schonmal
Martin |
|
Back to top |
|
|
misterjack Veteran
Joined: 03 Oct 2004 Posts: 1657
|
Posted: Wed Mar 01, 2006 9:33 pm Post subject: Re: Frage zu php und shell-script Variablen |
|
|
Code: | ssh user@user-rechner -C /usr/local/bin/program \"$var1\" \"$var2\" |
sowas in der richtung würde ich mir vorstellen _________________ „Meine Meinung steht fest! Bitte verwirren Sie mich nicht mit Tatsachen.“ |
|
Back to top |
|
|
Martini Tux's lil' helper
Joined: 30 Sep 2002 Posts: 141
|
Posted: Wed Mar 01, 2006 10:03 pm Post subject: |
|
|
Hi, danke
Habe ich gerade mal probiert. Leider ist das Problem das gleiche.
Der Befehl im php-script sieht im Prinzip jetzt so aus:
Code: |
exec ("su - user -c \"ssh user@user-rechner -C /usr/local/bin/program \"$var1\" \"$var2\" \"$var3\" \"$var4\" \"$var5\" \"$var6\" &\" ");
|
Martini |
|
Back to top |
|
|
slick Bodhisattva
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Thu Mar 02, 2006 5:00 am Post subject: |
|
|
Martini wrote: | Code: |
exec ("su - user -c \"ssh user@user-rechner -C /usr/local/bin/program \"$var1\" \"$var2\" \"$var3\" \"$var4\" \"$var5\" \"$var6\" &\" ");
|
|
Kann auch nicht gehen, ist ja auch einmal maskieren vergessen.
Also um mal bissl Ordnung reinzubekommen, einigen wir uns erstmal auf saubere Notation: $foo='a'.$b.'c'; statt $foo="a$bc";
Damit sollte das Script so ausssehen:
Code: | exec ('su - user -c "ssh user@user-rechner -C /usr/local/bin/program \"'.$var1.'\" \"'.$var2.'\" \"'.$var3.'\" \"'.$var4.'\" \"'.$var5.'\" \"'.$var6.'\" & " '); |
Wo gehört das & mit hin? zu su oder ssh? In dem Beispiel zu ssh.
Damit sollten in $var auch mit Leerzeichen möglich sein, allerdings nicht doppelte Anführungszeichen ", die müssten dann "doppelt" maskiert werden, also besser vermeiden. |
|
Back to top |
|
|
Martini Tux's lil' helper
Joined: 30 Sep 2002 Posts: 141
|
Posted: Thu Mar 02, 2006 3:09 pm Post subject: Frage zu php und shell-script Variablen [solved] |
|
|
Hallo
Ahh, danke slick.
Ich werde das heute abend ausprobieren und berichten.
Danke für die Erläuterung.
Das & gehört zum ssh.
Danke
Martini
edit:
sorry, bin eben erst dazu gekommen...
funktioniert leider so auch nicht, Problem ist client-seitig. Ich teste weiter, sobald ich ich wieder Zeit habe...
Danke
/edit
edit2:
Hi, ich nochmal...
Habe jetzt noch mal weiter probieren können.
Mit
Code: |
\"'.escapeshellarg ($var1).'\"
|
funktioniert das jetzt wunderbar. Danke nochmal für die Hilfe.
Martini
/edit[topic=][/topic] |
|
Back to top |
|
|
|