Ich habe ein Script, das meistens funktioniert, aber manchmal nicht und das versuche ich herauszufinden. Vermutlich hängt es mit den Rsync-Optionen zusammen. http://tldp.org/LDP/abs/html/quotingvar.html hat mich nicht weitergebracht.
Je nach Bedingung sind die Rsync-Optionen unterschiedlich, also möchte ich die in eine Variable geben.
rsyncopt=( -e "ssh -p $PORT" -rcvL --modify-window=2 --stats --delete ) echo "rsyncopt (1) ""$rsyncopt"
Warum ergibt das (zur Kontrolle nur
rsyncopt (1) -e
und nicht mehr? Das Script tut dann aber meistens das was es soll, aber 1x nicht und ich habe noch nicht kapiert warum. Eventuell ist es ein Versionen-Problem. Ich möchte also den Befehl ohne Variablen darstellen, den das Script ausführt und den dann in einer Shell genauso ausführen.
echo "/usr/bin/rsync ""${rsyncopt[@]}"" $syncquelle $syncziel"So führt es das Script aus:
time /usr/bin/rsync "${rsyncopt[@]}" "$syncquelle" "$syncziel"Wie muss ich also bitte korrekt quoten?