使用netcat和grep有条件地运行命令

我需要netcat监听包含HTTP请求,并根据请求,我需要运行一个脚本。

到目前为止,我有这个;

netcat -lk 12345 | grep "Keep-Alive" 

所以每次netcat收到一个包含“keep-alive”的包时,我都需要启动一个脚本。

它需要在crontab中运行…

谢谢你的帮助!

这个怎么样?

  #!/bin/bash netcat -lk -p 12345 | while read line do match=$(echo $line | grep -c 'Keep-Alive') if [ $match -eq 1 ]; then echo "Here run whatever you want..." fi done 

将“echo”命令替换为您要执行的脚本。

怎么样:

 #!/bin/bash netcat -lk -p 12345 | grep 'Keep-Alive' | while read unused; do echo "Here run whatever you want..." done 

要么

 #!/bin/bash netcat -lk -p 12345 | sed -n '/Keep-Alive/s/.*/found/p' | xargs -n 1 -I {} do_something # replace do_something by your command.