![如何让 netcat 非静默超时?](https://linux22.com/image/1710243/%E5%A6%82%E4%BD%95%E8%AE%A9%20netcat%20%E9%9D%9E%E9%9D%99%E9%BB%98%E8%B6%85%E6%97%B6%EF%BC%9F.png)
我正在尝试使用以下命令将一些数据发送到服务器,例如nc -w 3 IP_ADDRESS PORT < data
nc 是FreeBSD 5.4 中的 netcat。当服务器在 3 秒内没有响应时,我根本得不到任何提示(退出代码为 0,并且没有终端输出)。我如何向服务器发送数据并在发生超时时收到警报?
答案1
使用详细选项并检查发送的字节数是否为非零。例如,如果计数为零,则使用 awk 退出 1:
nc -v -w 3 localhost 80 2>/tmp/log
awk '/bytes sent/{exit($2==0)}' < /tmp/log
echo $?