次のbashを考えます:
PARMS='-rvu'
PARMS+=" --delete --exclude='.git'"
echo $PARMS
rsync ${PARMS} . ${TARGET}
エコーはPARMS文字列を期待どおりに表示し、エラーは表示されませんが、rsyncは+ =によって追加されたオプションが存在しないかのように静かに動作します。ただし、これは期待どおりに機能します。
PARMS='-rvu'
rsync ${PARMS} --delete --exclude='.git' . ${TARGET}
私はbash引用符で何かを台無しにしたと思います(常にそれらに問題がありました)が、文字列が正しく構築されているように見えても、オプションが何を無視するのか正確にはわかりません。
これは、
—
アントン14
bash
バージョン4.2.25で変更なしで機能します。
echo "$PARMS"
そして、rsync "${PARMS}"
...