รับชิ้นส่วนทุบตีนี้:
PARMS='-rvu'
PARMS+=" --delete --exclude='.git'"
echo $PARMS
rsync ${PARMS} . ${TARGET}
echo แสดงสตริง PARMS ตามที่คาดไว้จะไม่มีข้อผิดพลาดปรากฏขึ้น แต่ rsync จะทำหน้าที่อย่างเงียบ ๆ ราวกับไม่มีตัวเลือกที่เพิ่มโดย + = อยู่ อย่างไรก็ตามทำงานได้ตามที่คาดไว้:
PARMS='-rvu'
rsync ${PARMS} --delete --exclude='.git' . ${TARGET}
ฉันเดาว่าฉันทำอะไรบางอย่างกับคำพูดทุบตี (มักจะมีปัญหากับสิ่งเหล่านั้น) แต่ไม่แน่ใจว่าอะไรและทำไมตัวเลือกถูกละเว้นแม้ว่าสตริงดูเหมือนว่าจะถูกสร้างขึ้นอย่างถูกต้อง
bash
เวอร์ชัน 4.2.25 โดยไม่มีการเปลี่ยนแปลงใด ๆ
echo "$PARMS"
และrsync "${PARMS}"
...