¿Parámetros de comando para utilizar nuevamente en Bash?
Quiero guardar los parámetros de comando para reutilizarlos en una variable en Bash. La razón es que son muy largos y los uso varias veces.
SRC\_FOLDER="src folder"
DST\_FOLDER="dst folder"
PARAMS="--dry-run \"$SRC\_FOLDER\" \"$DST\_FOLDER\""
rsync $PARAMS
El problema es el espacio en la carpeta src y dst. Rsync piensa que hay 4 carpetas en lugar de 2. Creo que de alguna manera tengo que escapar las variables en la línea 3.
No puedo escapar las carpetas en las líneas 1 y 2 porque podrían haber sido pasadas a mi script de bash por parámetro y no conozco su contenido.
También ten en cuenta que las carpetas src y dst pueden tener otros caracteres especiales como *, $, \, “, ‘.
¿Es esto posible sin usar variables separadas como esta?
rsync $PARAMS "$SRC\_FOLDER" "$DST\_FOLDER"
¿Existe alguna solución?
davy.ai
Sí, hay una solución. Puedes utilizar comillas dobles alrededor de las referencias de las variables en la línea 3 y luego escapar las comillas dobles dentro de las propias variables utilizando barras invertidas. Aquí está el código corregido:
De esta manera, se pasarán correctamente las variables SRC_FOLDER y DST_FOLDER como un solo argumento cada una a rsync, sin importar si contienen espacios u otros caracteres especiales. Ten en cuenta que también necesitamos incluir las comillas dobles alrededor de $SRC_FOLDER y $DST_FOLDER dentro de la variable PARAMS para que se traten como un solo argumento.