ฉันกำลังทำงานกับสคริปต์และฉันต้องสร้างtar
คำสั่งแบบไดนามิก
ต่อไปนี้เป็นสองตัวอย่างเพื่ออธิบายสิ่งที่ฉันพยายามทำ:
#!/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"
ฉันต้องการที่จะใช้_tar
เป็นคำสั่งฉันสามารถทำให้มันทำงานกับเส้นทางแบบคลาสสิก แต่ฉันต้องการมันเพื่อทำงานกับช่องว่างในชื่อโฟลเดอร์ และทุกครั้งที่ฉันพบข้อผิดพลาดที่มีลักษณะ:
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
สิ่งหนึ่งที่คุณจำเป็นต้องรู้ฉันต้องการสคริปต์ของฉันเพื่อทำงานกับเครื่องจักรที่เก่ามากซึ่งหมายความว่าฉันไม่สามารถใช้คุณสมบัติทุบตีครั้งสุดท้ายได้
eval
ด้านหน้าของการประหารชีวิต?