Je travaille sur un script et j'ai besoin de construire la tar
commande dynamiquement.
Voici deux exemples pour illustrer ce que j'essaie de faire:
#!/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"
Je veux pouvoir utiliser _tar
une commande, j'ai pu le faire fonctionner avec un chemin classique, mais j'en ai besoin pour travailler avec des espaces dans le nom des dossiers. Et chaque fois que j'ai des erreurs qui ressemblent à:
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
Juste une chose que vous devez savoir, j'ai besoin que mon script fonctionne sur de très vieilles machines, ce qui signifie que je ne peux pas utiliser les dernières fonctionnalités de bash.
eval
devant l'exécution?