Я хочу запустить netcat (netcat-openbsd 1.105-7ubuntu1
) и смоделировать последовательность чата. Я хочу, чтобы 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()
Я скопировал код этого вопроса (в ответе @wooghie): выполнить команду условно с помощью netcat и 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
netcat -l
намного сложнее/хрупче, чем повторно реализовать весьnetcat -l
на Perl или Python. - person kubanczyk   schedule 19.01.2017coproc
в Bash упрощает задачу: stackoverflow.com/a/36327396/477563 - person Mr. Llama   schedule 19.01.2017expect
к тегам, и @GlennJackman может поделиться своей огромной мудростью в таких вещах.... - person Mark Setchell   schedule 19.01.2017