web-dev-qa-db-fra.com

se connecter via netcat et envoyer des messages en script bash

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?

2
OcK

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é).

1
OcK