我想运行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的asnwer中):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
答案 0 :(得分:0)
我认为你想要期待(1)。有点像:
#!/usr/bin/env expect
spawn nc localhost 8080
expect {
hello {
send "hello dude"
} bye {
close
} -re .* {
send [date]
}
}
请注意,期望的确是Tcl,它本身就非常强大。
没有测试过。 YMMV。