以下是我用来备份一些照片的 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"