我正在连接到远程登录监听程序。Telnet服务器每秒发送"1234“。我想阅读消息"1234“并关闭telnet会话。下面是我的代码,但它不能工作。
#!/bin/bash
telnet 192.168.10.24 1234
read $RESPONSE
echo "Response is"$RESPONSE
echo "quit"如何自动读取telnet消息?
发布于 2012-04-16 19:14:12
您可以使用内部TCP机制:
#!/bin/bash
exec 3<>/dev/tcp/127.0.0.1/80
# echo -en "eventualy send something to the server\n" >&3
RESPONSE="`cat <&3`"
echo "Response is: $RESPONSE"或者您可以使用nc (netcat),但请不要使用telnet!
发布于 2014-06-13 20:07:22
下面给出了最简单和最容易的方法。
sleep <n> | telnet <server> <port>n -自动退出前的等待时间(秒)。它可以是像0.5这样的分数。请注意,某些必需的输出可能无法在指定的等待时间内返回。因此,我们可能需要相应地增加。
服务器-目标服务器IP或主机名。
端口-目标服务端口号。
您还可以将输出重定向到文件,如下所示:
sleep 1 | telnet <server> <port> > output.log更新1#:如果远程主机既不接受也不丢弃连接请求,则上述方法可能无法工作。在这些情况下,以下方法有效:
RESPONSE=$(timeout 5 telnet 192.168.10.24 1234)发布于 2012-04-16 19:10:17
将输出重定向到文件并从该文件读取
telnet [ip-address] > /tmp/tempfile.txthttps://stackoverflow.com/questions/10172860
复制相似问题