netcat 管道运行得太早?

netcat 管道运行得太早?

我在后台运行以下脚本:

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请求的输入。

不知道该脚本的作用,我只能推测它可能在解析方面存在一些问题。

相关内容