1.创建命名管道,pipe_in
并pipe_out
运行:
$ mkfifo pipe_in
$ mkfifo pipe_out
2.连接pipe_in
到pipe_out
:
TERM0: $ tail -f pipe_in > pipe_out
3.将字符串hello world!
发送到pipe_in
并期望它到达pipe_out
:
TERM1: $ tail -f pipe_out
TERM2: $ echo "hello world!" > pipe_in
pipe_out
如果我在中杀死命令,我只能看到到达的字符串2.
。这似乎是一个缓冲问题,所以我决定运行上面的所有命令,stdbuf -i0 -e0 -o0 <command>
但它没有用。
tail
仅输出文件/流的最后 n 行。当您仍在生成行时,它无法知道哪些是最后的 n。你试过类似的东西
cat
吗?请参阅@ctrl-alt-delor 的答案,了解它不起作用的原因。但是您仍然可以通过以下方式实现相同的目的
cat
: