bash 中的并行进程

Parallel processes in bash

我有两个 bash 脚本:p1p2。第一个 p1 持续 40 秒,当它结束时我想 运行 p2.

然后,我想每 2 秒平行重复这个模式。这是一张图表,可以更好地说明我想要什么:

我怎样才能做到这一点?最好在 bash 中,但如果不可能,我可以使用 python 和 运行 我的 bash 脚本,例如使用子进程。

感谢您的帮助

每隔两秒,在后台启动 p1,然后启动 p2:

while sleep 2
do
  p1 && p2 &
done

while true; do; ( p1; p2 ) &; sleep 2; done

为了避免烦人的“完成”打印输出: while true; do; ( ( p1; p2 ) & ); sleep 2; done

显然,您可以根据需要修改为使用&&|

如果你不介意在第一个 运行 之前等待 2 秒,你可以将 while true 替换为 while sleep 2 这样看起来会更好,但浪费时间开始。