Pipe

使用 tail -f 連接的兩個命名 PIPE (PIPE_in/PIPE_out) |發送到 PIPE_in 的字元串未到達 PIPE_out

  • April 7, 2019

1.創建命名管道,pipe_inpipe_out執行:

$ mkfifo pipe_in
$ mkfifo pipe_out

2.連接pipe_inpipe_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

在此處輸入圖像描述

引用自:https://unix.stackexchange.com/questions/505674