Я хочу запустить netcat (netcat-openbsd 1.105-7ubuntu1
) и смоделировать последовательность чатов. Я хочу, чтобы ответ netcat автоматически.Возможна условная реакция с netcat
Пример того, что я хочу.
NETCAT: nc -l 8080
CLIENT: nc localhost 8080
CLIENT: hello
NETCAT: (if statment)
if hello
do hello friend
if bye
do bye friend
send a FIN tcp
default
date()
Я скопировал код этого вопроса (в asnwer по @wooghie): run a command conditionally with netcat and grep ... но сообщение не было отправлено клиенту. Netcat был в режиме прослушивания.
#!/bin/bash
netcat -l 8080 | while read line
do
match=$(echo $line | grep -c 'Hello')
if [ $match -eq 1 ]; then
printf "Hello friend\r\n\r\n"
fi
done
Нет. Вам нужно будет кормить как stdin *, так и * подавать stdout. Поэтому использовать «netcat -l» значительно сложнее/хрупко, чем повторно реализовать целую «netcat -l» в perl или python. – kubanczyk
@kubanczyk - Вы полностью могли использовать именованные каналы. «Копрок» Баша облегчает работу: http://stackoverflow.com/a/36327396/477563 –
Попробуйте добавить «ожидать» к тегам, а @GlennJackman может поделиться своей огромной мудростью с такими вещами .... –