假设我在 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通过同一管道流式传输输出?