在脚本中运行多个后台进程

时间:2015-05-06 21:59:25

标签: shell unix parallel-processing

我有一个以下格式的shell脚本:

cd /path/a/
make 
cd /path/b/
make
cd /path/c/
make

每个make命令在不同的目录中彼此独立。我想通过在后台使用'&'来运行不同的make命令来加速脚本。

cd /path/a/
make & 
cd /path/b/
make &
cd /path/c/
make &

这会有用吗?当第一个make命令正在运行时,目录已在下一行中更改为/ path / b /。这会影响后台的第一个表达吗?

编辑:我怀疑这种方法是否会让这个过程更快,并且想知道这些是否需要在不同的进程中运行。

2 个答案:

答案 0 :(得分:2)

那应该没问题。在读取makefile之前,make也接受-C选项来更改其目录。所以你也可以这样做:

make -C /path/a/ &
make -C /path/b/ &
make -C /path/c/ &

答案 1 :(得分:1)

我相信make采用-f命令行参数,您只需指定所需的makefile即可。所以,这应该工作: make -f /path/a/makefile & make -f /path/b/makefile & make -f /path/c/makefile &