Назад | Перейти на главную страницу

Простой ответчик netcat

Пытаемся создать простой ответчик netcat:

«Сервер» будет:

$ while true; do { ./secret.sh; } | sudo netcat -k -q -1 -l 123; done

secret.sh является:

#!/bin/bash
read line
if [ "$line" == "open" ]; then
    echo "sesame"
fi

И клиентское соединение:

$ echo "open" | netcat localhost 123

Это работает не так, как ожидалось. Что можно изменить, чтобы это работало?

После прочтения отзывов в другом месте были предложены следующие изменения:

mkfifo /tmp/pipe
while true; do { cat /tmp/pipe | ./secret.sh 2>&1; } | netcat -kv -lp 123 > /tmp/pipe; done

Это работает, но отвечает только результатами из secret.sh первый раз. Последующие соединения с правильной строкой не получают ожидаемого ответа. Однако я подхожу ближе.