Biorąc pod uwagę ten bash:
PARMS='-rvu'
PARMS+=" --delete --exclude='.git'"
echo $PARMS
rsync ${PARMS} . ${TARGET}
Echo pokazuje ciąg PARMS zgodnie z oczekiwaniami, nie wyświetla się żaden błąd, ale rsync cicho działa tak, jakby opcje dodane przez + = nie istniały. Działa to jednak zgodnie z oczekiwaniami:
PARMS='-rvu'
rsync ${PARMS} --delete --exclude='.git' . ${TARGET}
Chyba spieprzyłem coś z cytatami bashowymi (zawsze miałem z tym problemy), ale nie jestem pewien, co i dlaczego opcje są ignorowane, nawet jeśli łańcuch wydaje się być poprawnie zbudowany.
bash
wersji 4.2.25 bez żadnych zmian.
echo "$PARMS"
irsync "${PARMS}"
...