在remote-shell命令中缺少尾随 - '

时间:2013-03-18 01:59:33

标签: bash shell rsync

在我的bash shell脚本中,

rsync -a --delete -e "ssh -i /keypath" /source_dir/ username@remotehost:/dest_dir/

上面的[eval,double to single quotes]的任何组合都给出了以下错误,

在remote-shell命令中缺少尾随 - '。 rsync错误:../main.c(335)[sender = 2.6.8]

的语法或用法错误(代码1)

但是在命令提示符下直接使用相同的命令。 任何人都可以帮助我在这里失踪

由于

3 个答案:

答案 0 :(得分:3)

您的问题在于bash脚本中的嵌入式引号。

Bash FAQ #50

请参阅以下解决方案(如果您认为有用,请提供支持):

https://superuser.com/questions/354361/rsync-complaining-about-missing-trailing-in-a-bash-script

答案 1 :(得分:1)

不确定您的问题是什么,但对我来说,大多数奇怪的rsync错误都是由.bashrc.bash_profile(或其他shell rc文件)在登录时输出内容引起的。现在我经常写以下声明为.bashrc.bash_profile中的第一个行:

# return if it's not an interactive shell
[[ $- == *i* ]] || return 0

答案 2 :(得分:0)

一个对我有用的简单解决方案是使用引号而不是引号,即

rsync -a --delete -e 'ssh -i /keypath' /source_dir/ username@remotehost:/dest_dir/