如何将 Linux 命令的输出通过管道传回到先前的命令中

如何将 Linux 命令的输出通过管道传回到先前的命令中

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 上运行。)

相关内容