BASH: чтение строк из подключения netcat

У меня есть простой скрипт, который читает некоторые строки из соединения, инициализированного с помощью netcat. Клиент может передавать некоторые «команды». Если клиент пишет «exit», мне нравится закрыть соединение.

НО: После передачи «exit» сценарий выдает «Received» exit », но все еще читает еще одну строку до появления« Good bye ».

echo "Start listening on port $PORT ..."
    (echo "Welcome. Please give me one of the following commands: 
            $AVAILABLECOMMANDS") | nc -q -1 -l $PORT | while read line
    do
            if [ "$line" == 'exit' ]; then
                    echo "Received 'exit'"
                    break
            else
                    result=$(executeCommand $line)
                    echo "$result"
            fi
    done
    echo "Good bye"

Я думаю, что мне нужно переписать цикл, но я понятия не имею, как это сделать.

Может кто-нибудь помочь?

Спасибо.

1
задан 19 January 2017 в 18:01

0 ответов

Другие вопросы по тегам:

Похожие вопросы: