无需键盘输入即可打印 /dev/tcp 响应

无需键盘输入即可打印 /dev/tcp 响应

我使用以下命令从 TCP 套接字发送和接收:

exec 3<>/dev/tcp/localhost/port
echo -e "textcommand\r" >&3
cat <&3
exec 3<&-;exec 3>&-

cat <&3 行在终端中显示来自本地主机的响应,但我必须使用 Ctrl+d 或 Ctrl+c 返回命令行。如何在没有任何键盘交互的情况下打印来自本地主机的响应并返回到命令行?

编辑

(echo -en "textcommand\r"; sleep 1) | telnet localhost port

以上作为替代方案。在这里找到这个:https://stackoverflow.com/a/24204924/5900282

编辑2

这里有一个类似的问题:通过 Bash /dev/tcp 文件描述符从 Fluke 1620a 捕获数据

答案1

使用timeout

exec 3<>/dev/tcp/localhost/port
echo -e "textcommand\r" >&3
timeout 0.2 cat <&3
exec 3<&-; exec 3>&-

相关内容