Оба других ответа -c
и -q
данные являются правильными в правильном контексте, но это может помочь обобщить, почему существует несколько ответов, и дать более общее решение.
Эти разные опции делают одно и то же, но являются разными реализациями netcat:
-c
GNU реализация netcat
-q
OpenBSD реализация netcat.
-w
(другое?) OpenBSD реализация netcat.
Некоторые версии требуют Int , чтобы указать количество секунд ожидания перед выходом для -q
и -w
опций. Это int должно быть > 0
или >= 0
, в зависимости от версии.
Если вы реализуете что-то на нескольких машинах и не уверены, что они используют одну и ту же реализацию netcat, вы можете подумать о том, чтобы обернуть ваш вызов netcat timeout
программой, чтобы убить netcat через несколько секунд.
timeout 5 echo '{"hostUp": true}' | netcat localhost 8001
Этот подход немного неуклюж, потому что он накладывает верхний предел на выполнение netcat независимо от того, успешно ли он отправляет данные, но если вы отправляете небольшой объем данных и у вас есть несколько свободных секунд, это должно работать с любой реализацией netcat.