Я пытаюсь обрабатывать ввод по-разному параллельно, записывая результирующие строки по мере их поступления. Мой текущий подход таков:
# process_parallel.sh
read input
parallel --colsep ' ' --linebuffer 'echo $input | {}'
::: 'python process1.py' ./process2.sh ./process3
контекст сводится к следующему:
(sleep 1; echo "short input arriving late") | ./process_parallel.sh | ./collate_results.sh
выше работает, но имеет один важный недостаток: процессы не запускаются, пока входные данные не были прочитаны. Я хочу начать их немедленно, так как это может занять некоторое время, а затем иметь параллельную трубу с полным stdin для каждого из них.
Как сделать Я достиг этого?