如果需要定期运行这些多个脚本,则应考虑编写调用它们的 shell 脚本。或者,我们可以编写一个makefile。
当各种脚本之间存在依赖关系时,应使用makefile,并且您需要表示“<em>foo
需要在之前运行bar
”。然后make
程序将自动找到满足这些依赖关系的正确顺序。make
您还可以指定将启动多少并行作业:make -j 4
四个并行作业。
生成文件由具有依赖项和正文的接收方组成。在正文中,每一行都被视为一个 shell 命令。该命令将打印到终端,然后执行。要禁止打印,请在命令前加上@
. 例子:
foo: bar something_else
<tab >@ echo "I am about to execute the foo command:"
<tab >perl /some/path/foo.pl
bar:
<tab >@ echo "I am about to execute the bar:"
<tab >perl /some/path/bar.pl
something_else
<tab >perl /some/path/something.pl | perl /some/path/else.pl >/some/path/output.txt
<tab >
必须更改为文字制表符。空格的意图不起作用。
这种解决方案的缺点是makefile 的长度是简单shell 脚本的三倍。优点是您可以直接指定需要多少并行作业(这可以在没有太多空闲的情况下提供均匀的负载),并且您不必像Klas Lindbäck在他的回答中提出的那样手动订购脚本。make
你只需要指定实际的依赖项。