Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 在模式匹配之前,如何阻塞管道?_Unix_Pipe_Sh_Named Pipes - Fatal编程技术网

Unix 在模式匹配之前,如何阻塞管道?

Unix 在模式匹配之前,如何阻塞管道?,unix,pipe,sh,named-pipes,Unix,Pipe,Sh,Named Pipes,我如何才能阻塞管道,直到模式匹配为止? 我想这样做: #!/bin/sh mkfifo request response while true; do # needs to send one response at a time nc -N -l 127.0.0.1 4000 >request <response & # send output to request pipe sed -u '/^$/q' <request; # block until a b

我如何才能阻塞管道,直到模式匹配为止? 我想这样做:

#!/bin/sh

mkfifo request response
while true; do # needs to send one response at a time
  nc -N -l 127.0.0.1 4000 >request <response & # send output to request pipe
  sed -u '/^$/q' <request; # block until a blank line is received
  date | tee response # send input back to the original command
done
#/垃圾箱/垃圾箱
mkfifo请求响应
虽然真实;是否需要一次发送一个响应

nc-N-l 127.0.0.1 4000>请求如果与模式匹配的操作被阻塞,则可以使用cat防止数据从命名管道中流出,直到有东西写入到命名管道中。cat将从指定管道读取数据,直到写入EOF

#!/bin/sh

mkfifo response
while true; do # send one response at a time
  cat response | nc -N -l 127.0.0.1 4000 | # pipe request out
  (
    sed -u '/^$/q' # block until a blank line is received
    date | tee response # send input back to the original command
  )
done