如何并行运行来自不同目录的2个或更多脚本

时间:2018-02-23 08:11:57

标签: bash parallel-processing gnu-parallel

截至目前,我使用时间并行并行运行脚本。 例... 首先,我将转到脚本所在的目录。

cd $DIR

然后,执行脚本

time parallel ::: $script1 $script2 $script3

这很有效。

但是如果脚本在不同的目录中呢?

2 个答案:

答案 0 :(得分:3)

您可以使用&符号(&)在bash中执行后台操作,(command)在子shell中运行command

(cd $DIR1; $script1) &
(cd $DIR2; $script2) &

答案 1 :(得分:2)

如果您不需要cd进入每个目录,您只需执行以下操作:

time parallel --dry-run ::: dirA/dirB/script1 dirC/dirD/script2

示例输出

dirA/dirB/script1
dirC/dirD/script2

如果你需要cd进入每个目录,你可以这样做:

time parallel --dry-run 'cd {//} && {/}' ::: dirA/dirB/script1 dirC/dirD/script2

示例输出

cd dirA/dirB && script1
cd dirC/dirD && script2