Celeb Glow
news | March 28, 2026

connect via netcat and send messages in bash script [duplicate]

When I am writing a bash script like the following:

#!/bin/bash
nc localhost [pseudoport]
echo "test"

it connects to the server but does not send the text "test".

It works with

#!/bin/bash
echo "test" | nc localhost [pseudoport]

The problem here is that the connection exits after something has been received.

How can I send multiple messages, in my case a fixed preamble followed by a variable data?

5

1 Answer

I have found a way to do this here: Send Commands to socket using netcat

You have to put the messages you want to send in a textfile (lets say msg.txt) and then

nc localhost [pseudoport] < msg.txt

The text file should look like this:

message1
message2
message3
...

Every message has to be in a new line.

The link I posted has a better explanation why this has to be done the way it is done here (there is no explanation in the duplicate article).