Diberikan potongan pesta ini:
PARMS='-rvu'
PARMS+=" --delete --exclude='.git'"
echo $PARMS
rsync ${PARMS} . ${TARGET}
Gema menunjukkan string PARMS seperti yang diharapkan, tidak ada kesalahan yang ditampilkan, tetapi rsync diam-diam bertindak seolah-olah opsi yang ditambahkan oleh + = tidak ada. Namun, ini berfungsi seperti yang diharapkan:
PARMS='-rvu'
rsync ${PARMS} --delete --exclude='.git' . ${TARGET}
Saya kira saya mengacaukan sesuatu dengan tanda kutip (selalu memiliki masalah dengan itu), tetapi tidak yakin apa dan mengapa opsi diabaikan meskipun string tampaknya telah dibangun dengan benar.
bash
versi 4.2.25 tanpa perubahan apa pun.
echo "$PARMS"
danrsync "${PARMS}"
...