这是我的代码:
#!bin/bash
id=$(sshpass -p password ssh -tt username@ipaddress -p PORT "grep --include=\*.cr -rlw '/usr/local/bin/' -e '$1' | cut -c16-")
echo $id
sshpass -p password rsync -avHPe 'ssh -p PORT' username@ipaddress:/usr/local/bin/"$id" /usr/local/bin/
id回声正确,但在尝试调用变量时出现rsync错误。
如果我手动填充并运行rsync,该命令有效,所以我不确定发生了什么。
Rsync在出错时给出了以下输出。
rsync: link_stat "/usr/local/bin/match.cr\#015" failed: No such file or directory (2)
似乎抓住了额外的角色?任何帮助表示赞赏:)
答案 0 :(得分:1)
您的文件看起来包含Windows特定的“CR LF”字符。您需要在脚本中将这些转换为特定于Linux的“LF”字符。您可以使用dos2unix或Notepad ++等工具。