Sowohl die anderen -c
als auch die -q
gegebenen Antworten sind im richtigen Kontext richtig, aber es kann hilfreich sein, zusammenzufassen, warum es mehrere Antworten gibt, und eine allgemeinere Lösung anzugeben.
Diese verschiedenen Optionen bewirken dasselbe, sind jedoch unterschiedliche Implementierungen von netcat:
-c
GNU-Implementierung von Netcat
-q
OpenBSD-Implementierung von netcat.
-w
(other?) OpenBSD-Implementierung von netcat.
Einige Versionen erfordern ein int, um die Anzahl der Sekunden anzugeben, die gewartet werden muss, bevor die -q
und -w
-Optionen beendet werden. Dieses int muss > 0
oder sein >= 0
, abhängig von der Version.
Wenn Sie etwas auf mehreren Computern implementieren und nicht sicher sind, ob diese dieselbe Implementierung von netcat verwenden, sollten Sie Ihren netcat-Aufruf mit dem timeout
Programm abschließen, um netcat nach einigen Sekunden zu beenden.
timeout 5 echo '{"hostUp": true}' | netcat localhost 8001
Dieser Ansatz ist etwas umständlich, da er die Ausführung von netcat nach oben begrenzt, unabhängig davon, ob Daten erfolgreich gesendet werden oder nicht. Wenn Sie jedoch eine kleine Datenmenge senden und ein paar Sekunden Zeit haben, sollte dies funktionieren mit jeder Netcat-Implementierung.