Ich arbeite an einem Skript und muss den tar
Befehl dynamisch erstellen .
Hier sind zwei Beispiele, um zu veranschaulichen, was ich versuche:
#!/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"
Ich möchte in der Lage sein, _tar
als Befehl zu verwenden. Ich konnte ihn mit dem klassischen Pfad arbeiten lassen, aber ich brauche ihn, um mit Leerzeichen im Ordnernamen zu arbeiten. Und jedes Mal bekam ich Fehler, die aussehen wie:
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
Nur eine Sache, die Sie wissen müssen: Ich brauche mein Skript, um auf sehr alten Maschinen zu arbeiten, was bedeutet, dass ich die letzten Bash-Funktionen nicht verwenden kann.
eval
vor der Hinrichtung?