Estoy trabajando en un script y necesito construir el tar
comando dinámicamente.
Aquí hay dos ejemplos para ilustrar lo que estoy tratando de hacer:
#!/bin/bash
TAR_ME="/tmp"
EXCLUDE=("/tmp/hello hello" "/tmp/systemd*" "/tmp/Temp*")
_tar="tar "`printf -- '--exclude="%s" ' "${EXCLUDE[@]}"`" -zcf tmp.tar.gz"
echo COMMAND: "${_tar}"
${_tar} "$TAR_ME"
echo -e "\n\nNEXT:\n\n"
EXCLUDE=("--exclude=/tmp/hello\ hello" "--exclude=/tmp/systemd*" "--exclude=/tmp/Temp*")
_tar="tar "`printf -- '%s ' "${EXCLUDE[@]}"`" -zcf test.tar.gz"
echo COMMAND: "${_tar}"
${_tar} "$TAR_ME"
Quiero poder usarlo _tar
como comando, pude hacerlo funcionar con la ruta clásica, pero necesito que funcione con espacios en el nombre de las carpetas. Y cada vez recibí errores que se ven así:
COMMAND: tar --exclude="/tmp/hello hello" --exclude="/tmp/systemd*" --exclude="/tmp/Temp*" -zcf tmp.tar.gz /tmp
tar: hello": Cannot stat: No such file or directory
COMMAND: tar --exclude=/tmp/hello\ hello --exclude=/tmp/systemd* --exclude=/tmp/Temp* -zcf test.tar.gz
tar: hello: Cannot stat: No such file or directory
Solo una cosa que necesita saber, necesito que mi script funcione en máquinas muy antiguas, lo que significa que no puedo usar las últimas funciones de bash.
eval
delante de la ejecución?