Sto lavorando a uno script e devo creare il tar
comando in modo dinamico.
Ecco due esempi per illustrare cosa sto cercando di fare:
#!/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"
Voglio essere in grado di utilizzare _tar
come comando, sono stato in grado di farlo funzionare con il percorso classico, ma ne ho bisogno per lavorare con spazi nel nome delle cartelle. E ogni volta ho ricevuto errori che assomigliano a:
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 che devi sapere, ho bisogno che il mio script funzioni su macchine molto vecchie, il che significa che non posso usare le ultime funzionalità di bash.
eval
di fronte all'esecuzione?