As outras respostas -c
e -q
fornecidas estão corretas no contexto certo, mas pode ajudar a resumir por que existem várias respostas e fornecer uma solução mais geral.
Essas diferentes opções fazem a mesma coisa, mas são implementações diferentes do netcat:
-
-c
implementação do GNU do netcat -
-q
Implementação do OpenBSD do netcat. -
-w
(outro?) Implementação do Netcat no OpenBSD.
Algumas versões exigem um int para especificar o número de segundos a aguardar antes de sair para as opções -q
e -w
. Esse int deve ser > 0
ou >= 0
, dependendo da versão.
Se você estiver implementando algo em várias máquinas e não tiver certeza de que eles usam a mesma implementação do netcat, você pode considerar agrupar sua chamada de netcat com o programa timeout
para eliminar o netcat após alguns segundos.
timeout 5 echo '{"hostUp": true}' | netcat localhost 8001
Essa abordagem é um pouco desajeitada, pois coloca um limite superior na execução do netcat, independentemente de estar ou não enviando dados com êxito, mas se você estiver enviando uma pequena quantidade de dados e tiver alguns segundos de sobra, isso deve funcionar com qualquer implementação do netcat.