假设我在 bash 中有以下命令:
one | two
one
运行很长时间,产生一个输出流并two
对该流的每一行执行快速操作,但two
根本不起作用,除非它读取的第一个值告诉它每行要读取多少个值。one
不输出该值,但我提前知道它是什么(假设它是15
)。我想15\n
在输出之前通过管道发送一个one
。我不想修改one
或two
。
我的第一个想法是:
echo "$(echo 15; one)" | two
one
这给了我正确的输出,但在命令完成之前它根本不会流过管道。我希望输出立即通过管道开始流式传输,因为执行需要很长时间(几个月)。
我也试过:
echo 15; one | two
当然,它会输出 15,但不会通过管道将其发送到two
.
bash 中有没有办法通过管道传递 '15\n' 然后开始one
通过同一管道流式传输输出?