Dado este pedazo de fiesta:
PARMS='-rvu'
PARMS+=" --delete --exclude='.git'"
echo $PARMS
rsync ${PARMS} . ${TARGET}
El eco muestra la cadena PARMS como se esperaba, no se muestra ningún error, pero rsync actúa silenciosamente como si las opciones agregadas por + = no existieran. Sin embargo, esto funciona como se esperaba:
PARMS='-rvu'
rsync ${PARMS} --delete --exclude='.git' . ${TARGET}
Supongo que arruiné algo con citas bash (siempre tuve problemas con eso), pero no estoy seguro de qué y por qué se ignoran las opciones a pesar de que la cadena parece haber sido construida correctamente.
bash
versión 4.2.25 sin ningún cambio.
echo "$PARMS"
yrsync "${PARMS}"
...