He estado leyendo citas en bash aquí y en todas partes, pero no recibí ayuda para resolver este problema.Problema de Bash con eval, variables y citas
Lo que pasa es que tengo un pequeño script para hacer copias de seguridad en un ciclo.
Si no uso eval
entonces tengo problemas con la variable $OPTIONS
en rsync
.
Pero si yo utilizo eval
entonces el problema va a la variable $CURRENT_DIR
...
rsync devuelve el siguiente mensaje: 'inesperado arg locales:/ruta/a'
He intentado todas las forma de citar la variable $CURRENT_DIR
CURRENT_DIR="/path/with spaces/backup"
DIR="dir_by_project"
f=":/home/project_in_server"
OPTIONS="-avr --exclude 'public_html/cms/cache/**' --exclude 'public_html/cms/components/libraries/cmslib/cache/**' --delete"
eval rsync --delete-excluded -i $OPTIONS [email protected]$f $CURRENT_DIR/xxx/$DIR/files
¿hay alguna manera que pueda utilizar la variable $CURRENT_DIR
sin problemas causados por los espacios?
Está funcionando, pero no sé exactamente por qué? Supongo que tiene que ver con la división de palabras. ¿Podrías por favor elaborar un poco más en tu respuesta? [Editar] Creo que lo tengo ahora. Utilicé eval porque quería $ OPTIONS para ser palabra dividida y eso hizo CURRENT_DIR para ser palabra dividida también? y cuando eval ejecuta eliminar citas primero ... – Cesar
¡Gracias por la aclaración! – Cesar