类似问题如何使用 netcat 获取 udp 响应除了 OP 对以交互方式使用 nc 感到满意(并且我还没有评论的声誉!)
我需要能够编写一些 bash 脚本并处理响应。应如何更改以下代码以获取文件 response.txt 中的响应或以其他方式捕获响应以供 bash 中后续代码行使用?
echo "request" | nc -u 1.1.1.1 9999 > response.txt
服务器可能需要几秒钟甚至几分钟才能生成响应和回复。当我尝试以下操作时,我立即返回到命令提示符,并且 response.txt 为空。
echo "request" | nc -u 1.1.1.1 9999 | tee response.txt
(我确实确认运行 nc -u 1.1.1.1 9999 并在一行中输入“请求”会返回预期的响应。但如何捕获它?)
提前致谢!
答案1
当我尝试nc
您使用的命令时,它挂起了,从未退出。因此,我添加了-q 2
2 秒后超时的选项,它对我来说很有效:
chicks@silver 17:34:54 ~ !548 $ echo "foo" | nc -u 127.0.0.1 7777 -q 2 > /tmp/z
chicks@silver 17:34:59 ~ !549 $ cat /tmp/z
foo
因此你只需要选择一个你可以接受的超时时间。:)