Quotinproblem mit rsync und Ports
So funktioniert es: /usr/bin/rsync -e "ssh -p 22222" -rLptgoDvz --stats --delete $SYNCQUELLE $SYNCZIEL Das funktioniert nicht mehr: RSYNCOPT="-e \"ssh -p 22222\" -rLptgoDvz --stats --delete" /usr/bin/rsync "$RSYNCOPT" $SYNCQUELLE $SYNCZIEL Wie müsste man richtig quoten? Al -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Mon, 11 Apr 2011, Al Bogner schrieb:
So funktioniert es: /usr/bin/rsync -e "ssh -p 22222" -rLptgoDvz --stats --delete $SYNCQUELLE $SYNCZIEL
Das funktioniert nicht mehr: RSYNCOPT="-e \"ssh -p 22222\" -rLptgoDvz --stats --delete" /usr/bin/rsync "$RSYNCOPT" $SYNCQUELLE $SYNCZIEL
Wie müsste man richtig quoten?
Bash? RSYNCOPT=( -e "ssh -p 22222" -rLptgoDvz --stats --delete ) /usr/bin/rsync "${RSYNCOPT[@]}" $SYNCQUELLE $SYNCZIEL Sonst: RSYNCOPT="-e \"ssh -p 22222\" -rLptgoDvz --stats --delete" /usr/bin/rsync $RSYNCOPT $SYNCQUELLE $SYNCZIEL HTH, -dnh -- PANIC YE NOT: go have a drink -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Mo, 11 Apr 2011 23:16:39 CEST schrieb David Haller: Hallo David,
Am Mon, 11 Apr 2011, Al Bogner schrieb:
So funktioniert es: /usr/bin/rsync -e "ssh -p 22222" -rLptgoDvz --stats --delete $SYNCQUELLE $SYNCZIEL
Das funktioniert nicht mehr: RSYNCOPT="-e \"ssh -p 22222\" -rLptgoDvz --stats --delete" /usr/bin/rsync "$RSYNCOPT" $SYNCQUELLE $SYNCZIEL
Wie müsste man richtig quoten?
Bash?
ja
RSYNCOPT=( -e "ssh -p 22222" -rLptgoDvz --stats --delete ) /usr/bin/rsync "${RSYNCOPT[@]}" $SYNCQUELLE $SYNCZIEL
funktioniert so
Sonst: RSYNCOPT="-e \"ssh -p 22222\" -rLptgoDvz --stats --delete"
genau das hatte ich ja probiert
/usr/bin/rsync $RSYNCOPT $SYNCQUELLE $SYNCZIEL
Ich bin mir unsicher, ich denke ich habe es aber auch nicht mit " probiert. Sollte das auch mit der Bash funktionieren? Al -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Sat, 16 Apr 2011, Al Bogner schrieb:
Am Mo, 11 Apr 2011 23:16:39 CEST schrieb David Haller:
Am Mon, 11 Apr 2011, Al Bogner schrieb:
So funktioniert es: /usr/bin/rsync -e "ssh -p 22222" -rLptgoDvz --stats --delete $SYNCQUELLE $SYNCZIEL
Das funktioniert nicht mehr: RSYNCOPT="-e \"ssh -p 22222\" -rLptgoDvz --stats --delete" /usr/bin/rsync "$RSYNCOPT" $SYNCQUELLE $SYNCZIEL
Wie müsste man richtig quoten?
Bash?
ja
RSYNCOPT=( -e "ssh -p 22222" -rLptgoDvz --stats --delete ) /usr/bin/rsync "${RSYNCOPT[@]}" $SYNCQUELLE $SYNCZIEL
funktioniert so
Gut. Nimm das.
Sonst: RSYNCOPT="-e \"ssh -p 22222\" -rLptgoDvz --stats --delete"
genau das hatte ich ja probiert
aber nicht mit:
/usr/bin/rsync $RSYNCOPT $SYNCQUELLE $SYNCZIEL
Ich bin mir unsicher, ich denke ich habe es aber auch nicht mit " probiert. Sollte das auch mit der Bash funktionieren?
Ja. Entscheidend ist, daß du hier im rsync-Aufruf $RSYNCOPT nicht quoten kannst, denn dann bekommt rsync das als _EIN_ Argument übergeben, und rsync kann damit dann natürlich nix mit anfangen. Bei der Diagnose solcher Probleme hilft übrigens set -x /usr/bin/rsync $RSYNCOPT $SYNCQUELLE $SYNCZIEL vs. set -x /usr/bin/rsync "$RSYNCOPT" $SYNCQUELLE $SYNCZIEL da siehst du dann, wie rsync konkret aufgerufen wird. Aber wenn du bash verwendest ist das mit dem Array auf jeden Fall vorzuziehen, da kannst du auch recht problemlos Argumente mit Leerzeichen und anderem Krams drin "weitergeben", denn beim "Abruf" per "${ARRAYVAR[@]}" werden die Argumente genau richtig weitergegeben. (siehe wieder Aufruf mit 'set -x'). Manches (Optionen mit Leerzeichen "weitergeben", ggfs. ergänzen) geht schmerzarm nur mit Array (oder zumindest müßtest du ohne die Argumente explizit parsen und Quoting einfügen und das ist fehleranfällig). Will man also nicht. -dnh -- XSLT ist ungefähr so wichtig und brauchbar wie die österreichische berittene Gebirgsmarine. -- fefe -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Al Bogner schrieb:
So funktioniert es: /usr/bin/rsync -e "ssh -p 22222" -rLptgoDvz --stats --delete $SYNCQUELLE $SYNCZIEL
Das funktioniert nicht mehr: RSYNCOPT="-e \"ssh -p 22222\" -rLptgoDvz --stats --delete" /usr/bin/rsync "$RSYNCOPT" $SYNCQUELLE $SYNCZIEL
Wie müsste man richtig quoten?
Al
Hi, geht nicht: RSYNCOPT="-e 'ssh -p 22222' -rLptgoDvz --stats --delete" ??? cu jth -- Joerg Thuemmler www.teddylinx.de -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (3)
-
Al Bogner
-
David Haller
-
Joerg Thuemmler