- 论坛徽章:
- 0
|
本帖最后由 305838894 于 2015-03-04 17:01 编辑
各位大神,咨询一个问题
我需要编一个文件,当编译完成后我会去判断生成的log,如果log里面有某一行,就说明编译失败,再继续编译,直到判断log里面没有这一行是成功
我现在的做法是联系执行三次判断语句,但是有的时候出现意外第三次重新编译还是报错就没办法,有没有什么办法,写一个子程序就可以判断,不用我执行同一个子程序三次- #!/usr/bin/perl
- ....
- license_decide();
- license_decide();
- license_decide();
- ....
- sub build {
- chdir $buildpath;
- print `pwd`;
- my $build = "./build.sh vendor all banben sign > build.log 2>&1";
- print "$build\n";
- system($build);
- }
- sub again_build {
- chdir $buildpath;
- print `pwd`;
- log_normal("again compile");
- build();
- log_normal("end compile");
- }
- sub license_decide {
- chdir $buildpath;
- my $wc = `grep -n \"Waiting for license\" build.log | wc -l`;
- if ($wc > 0){
- my @print = `grep -n license build.log`;
- print "-------error log -------\n";
- print "@print";
- print "-------error log -------\n";
- print "编译等不到license就自行了断了,需要重新编译一次\n";
- again_build_modem();
- }else{
- print "等到license了,继续接下来的事情\n";
- }
- }
复制代码 |
|