gpt4 book ai didi

linux - 循环在第一次迭代后退出

转载 作者:太空狗 更新时间:2023-10-29 11:30:47 26 4
gpt4 key购买 nike

cat hosts.txt | while read h; do telnet $h; done

当我运行它时,它远程登录到第一个拒绝连接的主机,然后退出而不是循环访问文件中的其他主机。为什么它在第一个主机之后退出循环,我该如何解决?

谢谢。

最佳答案

这在我的 bash 中工作得很好:

$ cat hosts.txt
machine1
machine3

$ cat hosts.txt | while read h; do telnet $h; done
Trying 9.190.123.47...
telnet: Unable to connect to remote host: Connection refused
Trying 9.190.123.61...
telnet: Unable to connect to remote host: Connection refused

但是,当我连接到一台拒绝连接的机器时,我得到:

$ cat hosts.txt
machine2
machine1
machine3

$ cat hosts.txt | while read h; do telnet $h; done
Trying 9.190.123.48...
Connected to machine2.
Escape character is '^]'.
Connection closed by foreign host.

那是因为我实际上成功 连接并且所有其他主机名都被发送到telnet session 。这些毫无疑问被用来尝试登录,其余主机名作为用户/密码无效,因此 session 正在关闭。

如果只是想交互登录各个系统,可以使用:

for h in $(cat hosts.txt); do telnet $h 1023; done

这不会将其余主机名捕获到第一个成功的 session 中。

如果你想真正自动化 telnet session ,你应该研究一个工具,例如 expect或使用远程 UNIX 工具之一,例如 rsh .

关于linux - 循环在第一次迭代后退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2091300/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com