linux telnet的返回值,bash shell的telnet返回值_bash_开发99编程知识库

本文探讨了在Linux telnet客户端中,如何处理远程主机主动关闭连接与正常退出的返回值问题,指出1并不总是失败,而ssh提供更可靠的远程脚本返回值。通过实例分析了telnet中遇到的常见情况和解决建议。
摘要由CSDN通过智能技术生成

$? shell 变量存储返回值,但是对于 Linux telnet 客户端, 这可能没有你想象的那么有用 。 如果远程主机关闭连接( 或者发生任何远程或网络错误) 和 0,客户端将返回 1 如果本地客户端端成功关闭连接,则返回。 问题在于编写了许多服务,以便它们发送数据然后自己关闭TCP连接, 而无需等待客户端:$ telnet time-b.timefreq.bldrdoc.gov 13

Trying 132.163.96.2...

Connected to time-b-b.nist.gov.

Escape character is '^]'.

58600 19-04-27 13:56:16 50 0 0 736.0 UTC(NIST) *

Connection closed by foreign host.

$ echo $?

1

即使客户端向服务器发送命令以便退出TCP流,这仍然会导致远程端关闭连接,结果相同,$ telnet mail.tardis.ed.ac.uk 25

Trying 193.62.81.50...

Connected to isolus.tardis.ed.ac.uk.

Escape character is '^]'.

220 isolus.tardis.ed.ac.uk ESMTP Postfix (Debian/GNU)

QUIT

221 2.0.0 Bye

Connection closed by foreign host.

$ echo $?

1

所以无论你怎么做,你都会得到一个 1 。 如果想要远程脚本的返回值,那么使用 ssh 就更容易了:$ ssh ssh.tardis.ed.ac.uk"exit 5"

THE TARDIS PROJECT | pubpubpubpubpubpubpubpubpub | Authorised access only

$ echo $?

5

据我所知,telnet唯一会返回零(即 success)如果你按escape退出客户端, 就像这样:$ telnet www.google.com 80

Trying 216.58.210.36...

Connected to www.google.com.

Escape character is '^]'.

^]

telnet> quit

Connection closed.

$ echo $?

0

希望这有帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值