我已将 shell 脚本简化为两个命令:
终端 A(将 STDIN 重定向到命名管道):
tee -a >>pipe
终端 B(从上面使用的管道读取):
tail -f pipe
我不明白的结果:
- 结果 1:开始 tee,开始 tail:第一个终端的任何输入都将被缓冲,并且仅在 tee 命令停止(ctrl-c)后显示在第二个终端。
- 结果2:开始发球,开始发球,停止发球,再次开始发球:现在只有每一行都被缓冲(我想要的结果)。结果显示在终端 2 的每一行输入到终端 1 的末尾。
- 结果 3(对于它的价值):首先开始 tail,然后 tee:与#1相同的结果。
我还使用 exec 和 cat 命令编写了一个类似的脚本,它表现出相同的行为。