Linux 命令
nc -l 8090 | (read METHOD URI PROTOCOL ; echo "method: $METHOD" ; echo "path: $URI" ; echo "prot: $PROTOCOL")
监听端口 8090,当我http://127.0.0.1:8090/path/to/nowhere
在浏览器中输入类似内容时,它会在终端中打印出一些有关 HTTP 请求的信息。我现在可以在终端窗口中输入一些内容,按下 Ctrl+C 后,这些内容将显示在浏览器中。
我想要的是将 echo 命令的输出通过管道传回 nc 的标准输入,这样它就会显示在浏览器中。有什么办法吗?
答案1
命名管道是你的朋友!
mkfifo ncloop
nc -l 8090 < ncloop | (read METHOD URI PROTOCOL ; echo "method: $METHOD" ; echo "path: $URI" ; echo "prot: $PROTOCOL") > ncloop
(在 OS X 10.8.2 中测试,但应该可以在任何 Unix 上运行。)