Dato questo pezzo di bash:
PARMS='-rvu'
PARMS+=" --delete --exclude='.git'"
echo $PARMS
rsync ${PARMS} . ${TARGET}
L'eco mostra la stringa PARMS come previsto, non viene visualizzato alcun errore, ma rsync agisce silenziosamente come se le opzioni aggiunte da + = non esistessero. Tuttavia, funziona come previsto:
PARMS='-rvu'
rsync ${PARMS} --delete --exclude='.git' . ${TARGET}
Immagino di aver rovinato qualcosa con le virgolette bash (ho sempre avuto problemi con quelli), ma non sono esattamente sicuro di cosa e perché le opzioni vengano ignorate anche se la stringa sembra essere stata costruita correttamente.
bash
versione 4.2.25 senza alcuna modifica.
echo "$PARMS"
ersync "${PARMS}"
...