我在后台运行以下脚本:
while true; do
{ file=$(/somescript); echo -ne "HTTP/1.0 200 OK\r\n\r\n"; cat $file; } | nc -l -p 20000
done
它工作得很好,除了在/somescript
向端口 20000 发出任何请求之前立即执行一次,然后它等待并正确响应。
我究竟做错了什么?它应该/somescript
只在有请求 20000 时运行
答案1
注意:写完本文后,问题已被编辑(管道颠倒)。如果我有时间的话我会更新。
管道的每个部分都与其他部分同时启动。唯一同步管道的是 I/O,即一个进程等待管道中的另一个进程读取其输出或提供输入。
在输出文件名之前,您的somescript
脚本必须等待并观察nc
请求的输入。
不知道该脚本的作用,我只能推测它可能在解析方面存在一些问题。