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

How to run 2 or more scripts from different directory in parallel

截至目前,我正在并行使用 time parallel to 运行 脚本。 例子... 首先,我将转到脚本所在的目录。

cd $DIR

然后,执行脚本

time parallel ::: $script1 $script2 $script3

这个效果很好。

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

您可以在 bash 中使用和号 (&) 进行后台执行,并在子 shell 中使用 (command) 到 运行 command

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

如果你不需要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