Bash 脚本中的 Rsync 无法识别空格

Bash 脚本中的 Rsync 无法识别空格

以下是我用来备份一些照片的 bash 脚本的摘录:

#!/bin/bash

FROM="/cygdrive/f/\"Trip to Austria\""
TO="/cygdrive/s/\"Trip to Austria\""

rsync -av $FROM $TO

当我从脚本内部打印最后一个命令时,它会正确打印,即

rsync -av /cygdrive/f/"Trip to Austria" /cygdrive/s/"Trip to Austria"

但是,当我运行脚本时,命令不起作用。我收到的错误与无法识别路径中的空格有关。

rsync: link_stat "/cygdrive/f/Photos/"Trip" failed: No such file or directory (2)
rsync: link_stat "/home/User/to" failed: No such file or directory (2)
rsync: change_dir "/home/User/Austria"" failed: No such file or directory (2)

但奇怪的是,命令当我在 Cygwin shell 中输入它时它就可以工作。

是什么赋予了?

答案1

这是因为 bash 首先识别了它们。

rsync -av "$FROM" "$TO"

相关内容