How can I close a netcat connection after a certain character is returned in the response?

Create a bash script called client.sh:

#!/bin/bash

cat someFile

while read FOO; do
        echo $FOO >&3
        if [[ $FOO =~ `printf ".*\x00\x1c.*"` ]]; then
                break
        fi
done

Then invoke netcat from your main script like so:

3>&1 nc -c ./client.sh somehost 1234

(You’ll need bash version 3 for the regexp matching).

This assumes that the server is sending data in lines – if not you’ll have to tweak client.sh so that it reads and echoes a character at a time.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)