在bash

时间:2018-06-14 01:30:22

标签: bash rsync

这是我的代码:

#!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)

似乎抓住了额外的角色?任何帮助表示赞赏:)

1 个答案:

答案 0 :(得分:1)

您的文件看起来包含Windows特定的“CR LF”字符。您需要在脚本中将这些转换为特定于Linux的“LF”字符。您可以使用dos2unix或Notepad ++等工具。