Answers:
其他两个答案-c
和-q
给出的答案在正确的上下文中都是正确的,但这可能有助于总结为什么存在多个答案并给出更通用的解决方案。
这些不同的选项执行相同的操作,但是是netcat的不同实现:
-c
netcat的GNU实现-q
netcat的OpenBSD实现。 -w
(其他?)OpenBSD实现的netcat。 某些版本需要一个int来指定退出-q
and -w
选项之前要等待的秒数。此int必须为> 0
或>= 0
,具体取决于版本。
如果要在多台计算机上实施某些操作,并且不确定它们是否使用相同的netcat实施,则可以考虑将netcat调用与timeout
程序包装在一起,以在几秒钟后终止netcat。
timeout 5 echo '{"hostUp": true}' | netcat localhost 8001
这种方法有点笨拙,因为无论是否成功发送数据,它都会对netcat的执行设置上限,但是如果发送少量数据并且有几秒钟的空闲时间,则此方法应该起作用与任何netcat实现。