首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何搜索字符串和去睡觉?

如何搜索字符串和去睡觉?
EN

Stack Overflow用户
提问于 2013-06-27 14:21:28
回答 1查看 97关注 0票数 1
代码语言:javascript
复制
foreach (@raw_data) {

  if ($raw_data[$count] =~ /Date/) {

    @dur            = split(/:/, $raw_data[$count]);
    $durtime        = "$dur[1]" . ":" . "$dur[2]" . ":$dur[3]";
    @dur            = split(/,/, $durtime);
    $startlocaltime = $dur[1];
    $starttime      = str2time($dur[1]);

    # $starttime=10000;
    $count++;
    $status = "PASS";
    if ($raw_data[$count] =~ /Command/) {

      @cmdsyntax = split(/:/, $raw_data[$count]);
      $cmdcount++;

      #Splitting Command name
      @cmdname = split(/\(/, $cmdsyntax[1]);
      $cmdlog = $cmdsyntax[1] . "\n";
      $count += 2;

      #Parsing for command output
      while ($raw_data[$count] =~ /[COMPLETED]/) {

        #Checking status of commmand
        if ($raw_data[$count] =~ /Error/i) {
          $status = "FAIL";
        }
        if ($raw_data[$count] =~ s/\"/\'/g) {
          $raw_data[$count] = $raw_data[$count];
        }
        if ($raw_data[$count] =~ s/&/ /g) {
          $raw_data[$count] = $raw_data[$count];
        }

        #Forming comandlog
        $cmdlog .= $raw_data[$count] . "\n";
        $count++;
      }

      #Changes Added
      my $xyz = "false";
      if ($raw_data[$count] =~ /^GetFTSJOBStatusResult/) {
        my $xyz = "true";
        next;
      }

      if ($xyz =~ /true/) {
        if ($line =~ /.*,([A-Za-z]*),.*/) {
          $status = $1;
          if ($status = ~/ACTIVE/) {
            sleep(1000);
            system("/bin/sh /tmp/uday/cliTestExecution1.sh  135.250.70.161 alcatel Linux1.* 11.54");
            goto START;
          }
        }
      }

      #Changes ends

      $cmdlog .= $raw_data[$count] . "\n";
      $count++;
    }

日志文件ActivateJobGetJOBStatus中有两个测试用例,如下所示。

我的Perl脚本目前将PASS设置为默认,并在下面的测试用例中搜索Error

如果发现错误,则将测试用例标记为FAIL

对于GetJOBStatus测试用例(如果是ACTIVE ),脚本必须休眠几分钟,并且必须再次执行GetJOBStatus,如果是成功的话,测试用例必须通过,否则就失败。

我尝试了几秒钟增加睡眠,并一再调用脚本,但这是行不通的。

请帮我找出正确的逻辑。

日志文件

代码语言:javascript
复制
Date and Time is:Thu, 20-06-2013 06:04:19
Line 4 Command:ActivateJob(Job=Test_Abort_New1);
Answer:
ActivateFTSJobResult = Success
COMPLETED

Date and Time is:Thu, 20-06-2013 06:04:19
Line 5 Command:GetJOBStatus(Job=Test_Abort_New1);
Answer:
GetJOBStatusResult = NELabel,Status,ErrorReason,Progress,CurrentUnit,Total
TSS_320_1,ACTIVE,No Error,0,BACKUP.DSC,0
COMPLETED
EN

回答 1

Stack Overflow用户

发布于 2013-06-27 14:51:38

代码语言:javascript
复制
if ($status = ~/ACTIVE/)

不是regex检查,空格是在错误的地方。在没有严格或警告的情况下,它可能会将'~/ACTIVE/‘作为一个空字字符串,然后将其赋值给$status。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17345733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档