Saya sedang mengerjakan skrip dan saya perlu membangun tar
perintah secara dinamis.
Berikut adalah dua contoh untuk menggambarkan apa yang saya coba lakukan:
#!/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"
Saya ingin dapat menggunakan _tar
sebagai perintah, saya bisa membuatnya bekerja dengan jalur klasik, tetapi saya membutuhkannya untuk bekerja dengan spasi di nama folder. Dan setiap kali saya mendapatkan kesalahan yang terlihat seperti:
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
Hanya satu hal yang perlu Anda ketahui, saya perlu skrip saya untuk bekerja pada mesin yang sangat lama, artinya saya tidak dapat menggunakan fitur bash terakhir.
eval
di depan eksekusi?