【问题标题】:How to run 2 or more scripts from different directory in parallel如何从不同目录并行运行 2 个或多个脚本
【发布时间】:2018-02-23 08:11:56
【问题描述】:

到目前为止,我使用 time parallel 来并行运行脚本。 例子... 首先,我会去脚本所在的目录。

cd $DIR

然后,执行脚本

time parallel ::: $script1 $script2 $script3

这很好用。

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

【问题讨论】:

  • 它们需要在不同的目录中运行还是只是放在不同的目录中?
  • 因为有一些依赖文件,需要在不同的目录下运行。
  • @JaneS.:只需将脚本的完整路径提供给上述示例即可。它应该工作吗?没有
  • @Inian 但是这3个脚本在不同的目录中。
  • 你试过了吗? time parallel ::: /blabla/blabla/blabla/abc/script1 /blabla/blabla/blabla/def/script2 /blabla/blabla/blabla/ghi/script3

标签: bash parallel-processing gnu-parallel


【解决方案1】:

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

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

【讨论】:

  • 不错的答案,可以结合 nohup 来避免在初始 bash 被杀死时脚本结束!
  • 不错。谢谢你:)
【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 2015-09-06
    相关资源
    最近更新 更多