使用脚本中的SSH"名称或服务notnamename"

Ale*_*own 2 linux ssh shell

无法通过SSH连接到主机.

我正在使用以下shell脚本ssh.

host_list="c15-0330-14.ad.mtu.edu"
ssh "$host_list"
Run Code Online (Sandbox Code Playgroud)

但它总是说: Name or service not knownname c15-0330-14.ad.mtu.edu.

我试过了ssh c15-0330-14.ad.mtu.edu.有用.另外,如果我有几个主机,我怎么能一个一个地调用它们?

che*_*ner 6

错误消息应该

ssh: Could not resolve hostname c15-0330-14.ad.mtu.edu: Name or service not known
Run Code Online (Sandbox Code Playgroud)

除了脚本中的DOS行结尾导致额外的回车存储在值的末尾host_list.当作为错误消息的一部分打印时,此回车导致光标返回到行的开头,从而导致您实际看到的错误消息.注意两半是如何对齐的(回车紧接在冒号之前):

ssh: Could not resolve hostname c15-0330-14.ad.mtu.edu
: Name or service not known
Run Code Online (Sandbox Code Playgroud)

导致你的错误

: Name or service not knownname c15-0330-14.ad.mtu.edu
Run Code Online (Sandbox Code Playgroud)

  • 简单地说,`host_list`的值不是`c15-0330-14.ad.mtu.edu`,而是`c15-0330-14.ad.mtu.edu\r``.额外的回车来自于你在Windows中保存文件的事实,它使用`\ r \n`来终止行,而Linux`bash`期望行仅被`\n`终止,所以`\ r`被认为是该行的一部分,而不是行结束的一部分.在Linux版本的`bash`可以正确执行之前,您需要更改脚本的行结尾. (2认同)