j'ai écrit un script bash qui suit:Rsync et cite
SRC="dist_serv:$HOME/www/"
DEST="$HOME/www/"
OPTIONS="--exclude 'file.php'"
rsync -Cavz --delete $OPTIONS $SRC $DEST
rsync échoue et je ne peux pas comprendre pourquoi, bien qu'il semble être lié à la variable $ OPTIONS (cela fonctionne lorsque je retire il). J'ai essayé d'échapper à l'espace avec un backslash (parmi beaucoup d'autres choses) mais cela n'a pas fonctionné. Le message d'erreur est:
rsync: mkdir "/home/xxx/~/public_html/" failed: No such file or directory (2)
J'ai essayé de citer la variable, ce qui jette une autre erreur ("option inconnue" sur mes variables $ OPTIONS):
rsync: --exclude 'xxx': unknown option
rsync error: syntax or usage error (code 1) at main.c(1422) [client=3.0.6]
La variable OPTIONS ne peut pas être cité, car il contient deux mots, et citant les empêchera d'être partagé lors de l'interprétation de la commande (ils seront considérés comme une seule chaîne). Dans ce cas, ne pas citer OPTIONS fonctionnerait car il ne contient aucun espace, mais ce n'est pas une solution générale. – Fred
oui bien sûr re: affectation variable! Modification de ma question ... – mrtnmgs
@immicile Si vous pouviez également mentionner le message d'erreur exact que vous obtenez de 'rsync' dans la question, cela aiderait beaucoup! Ce – Kusalananda