在 Windows 上编辑的 shell 脚本显示意外的错误消息

在 Windows 上编辑的 shell 脚本显示意外的错误消息

我在运行 ssh 到远程服务器的脚本时遇到一些问题。如果我只是从命令行 ssh 访问服务器,就没有问题,但是当我运行脚本来执行此操作时,我会收到错误“名称或服务未知名称”。我已将 IP 地址和主机名添加到 /etc/hosts 中,但这没有帮助。

我的脚本很简单:

 #!/bin/bash 
ssh username@hostname

难道我做错了什么?显然,我不需要为此专门编写一个脚本,但我将添加命令以在开始工作后执行。

答案1

该脚本的问题在于,当从 Windows 等其他系统复制文件时,它会添加换行符\n和回车符\r\n。有关换行的更多信息,请参见新队维基百科上的条目。

为了演示这个问题,我上传了短片段这里这解释了如何解决问题。

简而言之:使用t删除那些奇怪的行结尾

tr -d \\r <yourscript>newscript && mv newscript yourscript

然后再次运行该脚本。

或者按照 artm 的建议。

在编辑器中时vim,使用

:set ff=unix

(FF是缩写文件格式)并通过 保存文件shift+zz

相关内容