Les deux autres réponses -c
et -q
données sont correctes dans le bon contexte, mais cela peut aider à résumer pourquoi il y a plusieurs réponses et donner une solution plus générale.
Ces différentes options font la même chose mais sont des implémentations différentes de netcat:
-c
Implémentation GNU de netcat
-q
Implémentation OpenBSD de netcat.
-w
(autre?) Implémentation OpenBSD de netcat.
Certaines versions nécessitent un int pour spécifier le nombre de secondes à attendre avant de quitter pour les options -q
et -w
. Cet int doit être > 0
ou >= 0
, selon la version.
Si vous implémentez quelque chose sur plusieurs machines et n'êtes pas sûr qu'elles utilisent la même implémentation de netcat, vous pouvez envisager de boucler votre appel netcat avec le timeout
programme pour tuer netcat après quelques secondes.
timeout 5 echo '{"hostUp": true}' | netcat localhost 8001
Cette approche est un peu maladroite car elle impose une limite supérieure à l'exécution de netcat, qu'il envoie ou non des données avec succès, mais si vous envoyez une petite quantité de données et avez quelques secondes à perdre, cela devrait fonctionner avec n'importe quelle implémentation netcat.