赞
踩
$? 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
希望这有帮助
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。