Dado este pedaço de bash:
PARMS='-rvu'
PARMS+=" --delete --exclude='.git'"
echo $PARMS
rsync ${PARMS} . ${TARGET}
O eco mostra a sequência de PARMS conforme o esperado, nenhum erro é exibido, mas o rsync age silenciosamente como se as opções adicionadas pelo + = não existissem. No entanto, isso funciona conforme o esperado:
PARMS='-rvu'
rsync ${PARMS} --delete --exclude='.git' . ${TARGET}
Eu acho que estraguei algo com aspas bash (sempre tive problemas com elas), mas não sei exatamente o que e por que as opções são ignoradas, mesmo que a string pareça ter sido criada corretamente.
bash
versão 4.2.25 sem nenhuma alteração.
echo "$PARMS"
ersync "${PARMS}"
...