Quand j'écris un script bash comme suit:
#!/bin/bash
nc localhost [pseudoport]
echo "test"
il se connecte au serveur mais n'envoie pas le texte "test".
Ça marche avec
#!/bin/bash
echo "test" | nc localhost [pseudoport]
Le problème ici est que la connexion est interrompue après la réception de quelque chose.
Comment puis-je envoyer plusieurs messages, dans mon cas un préambule fixe suivi d'une donnée variable?
J'ai trouvé un moyen de faire cela ici: Envoyer les commandes à socket en utilisant netcat
Vous devez mettre les messages que vous voulez envoyer dans un fichier texte (disons msg.txt
), puis
nc localhost [pseudoport] < msg.txt
Le fichier texte devrait ressembler à ceci:
message1
message2
message3
...
Chaque message doit être dans une nouvelle ligne.
Le lien que j'ai posté explique mieux pourquoi cela doit être fait comme ici (il n'y a pas d'explication dans l'article dupliqué).