rsync 错误:语法或使用错误 - 使用 bash 脚本时

rsync 错误:语法或使用错误 - 使用 bash 脚本时

有问题的代码:

if  [[ $remote == y ]]; then
  RSYNCOPTIONS="&& $SSHOPTIONS $BKUSER@$BKSVR mv incomplete_back-$date $2 && rm -f current && ln -s $2 current"
else
  RSYNCOPTIONS="mv /backup/incomplete_back-$date /backup/$2 && rm -f /backup/current && ln -s /backup/$2 /backup/current"
fi

rsync -ah \
-e "$SSHOPTIONS" \
--ignore-errors \
--delete \
--delete-excluded \
--exclude-from="$BSPATH"/rsync/exclude \
--link-dest=../current \
"$(dirname ${PWD})" "${RSYNCLOCATION}incomplete_back-${date}" "${RSYNCOPTIONS}"

错误:

Unexpected remote arg: [email protected]:incomplete_back-2019-08-19T20_00_55
rsync error: syntax or usage error (code 1) at main.c(1214) [sender=3.0.9]

如果我删除“${RSYNCOPTIONS}”,那么它就会完成并且不会出现错误。

如果我回应“${RSYNCOPTIONS}”的结果

ssh -oStrictHostKeyChecking=no -i /root/.ssh/wpo_backups [email protected] mv incomplete_back-2019-08-19T19_24_51 manual-test && rm -f current && ln -s manual-test current

在此例中,remote == y

我可以手动运行它,它确实有效。如果需要整个脚本,我可以提供。

相关内容