这可能是一个基本问题,但答案并不容易获得。
我想创建一个连续调用3个任务的shell脚本,但要等到上一个任务完成。
像这样:
一个。通过ant调用第一个Java程序 湾调用第三方Java应用程序 C。通过ant调用第三个Java程序
我想知道是否有办法检查并确保一个。在b之前完成。被称为b并且相同。和c。
感谢
答案 0 :(得分:1)
默认情况下,ant任务发生在前台,因此在每个ant任务完成之前,脚本不会继续。如果你想要相反的行为,你只需要弄乱一切:所有三个任务同时发生
答案 1 :(得分:0)
java some.package
if [ $? -ne 0 ]; then exit -1; fi;
java some.other.package
默认情况下,脚本内的调用是连续的。 如果第一个java执行'some.package'没有返回0,正常退出代码,脚本将以-1退出而不执行'some.other.package'
答案 2 :(得分:0)
假设你正在使用* nix shell,想到一个简单的解决方案就是用&& amp;顺序执行所有三个命令。操作者:
#!/bin/sh
ant task -f build.xml && java org.mycompany.app && ant anothertask -f buld2.xml
&&运算符使
[...]依次执行每个命令,前提是前一个命令的返回值为true(零)。在第一次返回false(非零)返回时,命令链终止(返回false的第一个命令是执行1的最后一个命令)。