0
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()
私はこの質問(@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
いいえstdin *と*の両方を入力し、stdoutでフィードする必要があります。したがって、 'netcat -l'を使うことはperlやpythonで' netcat -l'全体を再実装するよりもはるかに複雑で壊れやすいものです。 – kubanczyk
@kubanczyk - あなたは完全に名前付きパイプを使うことができます。 Bashの 'coproc'はそれをより簡単にします:http://stackoverflow.com/a/36327396/477563 –
タグに' expect'を追加すると、@ GlennJackmanはそのようなものに彼の巨大な知恵を共有するかもしれません.... –