我有一堆svn项目,我想用ant更新和构建它们。目前我有一个顺序的方法:
find /opt/src/ -path "*/trunk/build.xml" -execdir svn update $(dirname {}) ; -exec ant -f {} ;
现在我想并行(或后台)运行ant构建,这样find命令就可以继续执行,而不会被ant调用阻塞。我已经读过在bash中用"&但在我的情况下,我不知道如何正确使用它。
谢谢你的帮助!
您可以将它们放在for循环中,在后台中开始每次迭代
for f in $(find /opt/src/ -path "*/trunk/build.xml") do
...
...
done &
经过一段时间的摸索,我得到了这个解决方案:
for f in $(find /opt/src/ -path "*/trunk/build.xml"); do
svn update $(dirname $f);
konsole --noclose --nofork -e ``ant -f $f`` &;
done
svn更新以串行方式运行,ant以并行方式构建。这意味着,一旦某个目录的svn更新完成,就会在一个单独的控制台(这里是kde的终端应用程序)窗口中启动ant构建。开始并行进行许多svn更新会导致我的环境中出现网络错误,所以我如上所述更改了行为。