我想以下列方式运行任务 a_1、a_2、b_1、b_2、c_1、c_2:a_i、b_j、c_k(其中 i、j、k 为 0 或 1)可以并行运行。但是 a_2 应该在 a_1 完成后立即运行(它们使用相同的资源,因此 a_2 应该等待 a_1 释放资源)。与 b、c 相同。
我怎样才能在 bash 中做到这一点?
我想以下列方式运行任务 a_1、a_2、b_1、b_2、c_1、c_2:a_i、b_j、c_k(其中 i、j、k 为 0 或 1)可以并行运行。但是 a_2 应该在 a_1 完成后立即运行(它们使用相同的资源,因此 a_2 应该等待 a_1 释放资源)。与 b、c 相同。
我怎样才能在 bash 中做到这一点?
这将运行三个后台作业,然后等待所有作业完成。这三个后台作业中的每一个都将一个接一个地运行其命令。
对于稍微复杂的变化:
这将做同样的事情,但会构造字符串
a_1
等a_2
,然后执行将这些字符串生成为命令所产生的任务。这显然只有在您的任务是具有这些名称的实际命令时才有效。使用 GNU 并行:
或者: