Normalement, je travaille ces choses assez rapidement, mais celui-ci est un mal de tête.Quoatation échapper - rsync de bash
J'ai un script shell qui charge quelques informations sur l'endroit où se connecter et comment à partir d'un fichier texte, cela est fait en utilisant la commande de lecture. Cela marche. Il stocke les arguments à envoyer sur RSync dans un appel de variable $ rsyncargs.
Je veux utiliser le RSync arg -e qui est utilisé pour transmettre les détails sur ssh, dans mon cas, un numéro de port si:
rsync -avz -e "ssh -p 222" dir/ [email protected]:dir/
la ligne dans le fichier texte ressemble à ceci:
-e "ssh -p 222"
la ligne de bash devrait être quelque chose comme:
rsync -avz $rsyncargs $src $dst
tout cela fonctionne, sauf que les citations désordre et je me retrouve avec
sending incremental file list
rsync: link_stat "/dir/to/shell/script/222"" failed: No such file or directory (2)
Il essaie d'analyser le contenu des citations au stade de mal. J'ai essayé une liste de différents mécanismes d'échappement (comme les barres obliques inverses dans le fichier texte et l'utilisation de guillemets simples au lieu de guillemets à plusieurs endroits, etc.) mais tout semble se terminer par des messages d'erreur catastrophiques (mais pas toujours identiques).
suggestions seraient grandement appréciés (soit pour résoudre le problème d'origine, ou pour obtenir le port ssh a changé d'une manière moins ennuyeux)
Cela fonctionnera certainement comme une mesure provisoire, et pourrait bien devenir la solution choisie. – Thingomy