З огляду на цей шматок басу:
PARMS='-rvu'
PARMS+=" --delete --exclude='.git'"
echo $PARMS
rsync ${PARMS} . ${TARGET}
Відлуння показує рядок PARMS як очікувалося, помилка не відображається, але rsync мовчки діє так, як ніби опції, додані знаком + =, не існували. Однак це працює, як очікувалося:
PARMS='-rvu'
rsync ${PARMS} --delete --exclude='.git' . ${TARGET}
Я думаю, що я щось накрутив цитатами bash (завжди з ними були проблеми), але не зовсім впевнений, що і чому варіанти ігноруються, навіть незважаючи на те, що рядок, здається, побудований правильно.
bash
версією 4.2.25 без будь-яких змін.
echo "$PARMS"
іrsync "${PARMS}"
...