我在运行脚本以通过 ssh 连接到远程服务器时遇到了一些问题。如果我只是从命令行 ssh 连接到服务器没有问题,但是当我运行脚本来执行此操作时,我会收到错误消息“名称或服务未知名称”。我已将 IP 地址和主机名添加到 /etc/hosts 中,但没有帮助。
我的脚本很简单:
#!/bin/bash
ssh username@hostname
Run Code Online (Sandbox Code Playgroud)
难道我做错了什么?显然,我不需要为此编写脚本,但是一旦我开始工作,我将添加要执行的命令。
该脚本的问题在于,当从另一个系统(如 Windows)复制文件时,它会添加一个换行符\n
和一个回车符\r\n
。有关换行的更多信息,请参阅维基百科上的换行条目。
为了演示这个问题,我在这里上传了一个简短的片段,它解释了如何解决这个问题。
简而言之:使用tr删除那些奇怪的行尾
tr -d \\r <yourscript>newscript && mv newscript yourscript
然后再次运行脚本。
或者按照 artm 的建议。
在vim
编辑器中,使用
:set ff=unix
(ff是fileformat 的缩写)并通过shift+zz
.