ARGV数组的作用

  今天在开发Perl脚本的时候遇到了一个问题:qualcomm给出的samples中的代码都用ARGV数组的元素个数来进行判断,代码如下:

sub ParseArguments
{
   # Assume failure
   my $RC = false;
   my $Txt = "";
   my $Help =
      "Syntax: Perl grep_isf.pl <Input_ISF_File.isf> <string_to_be_searched> \n"
    . "Eg:     Perl grep_isf.pl s1.isf \"MC_RESET|jammer in max bin\" \n";

   if ($#ARGV < 0)
   {
      print "\n$Help\n";
      return $RC;
   }

   my $ISFFileName = $ARGV[0];
   if ($ISFFileName eq "")
   {
      $Txt = "Invalid ISF file name\n\n" . $Help;
      print "\n$Txt";

      return $RC;
   }

   $ISFAbsolutePath = GetPathFromScript();
   if ($ISFAbsolutePath eq "")
   {
      $Txt = "Invalid ISF file name\n\n" . $Help;
      print "\n$Txt";

      return $RC;
   }
   else
   {
      $ISFAbsolutePath .= $ISFFileName;
   }

   $SearchString = $ARGV[1];
   if ($SearchString eq "")
   {
      $Txt = "Invalid Search String\n\n" . $Help;
      print "\n$Txt";

      return $RC;
   }

   # Success
   $RC = true;
   return $RC;
}

但是穷尽了一生也没有找到ARGV的声明,这时候郭宏跑过来和我抱怨这个东西运行不了,我就随手查了查,才发现别有洞天。

ARGV其实是主函数默认的两个参数之一,数组中存储的是指令的详细内容。

举个例子: 我们写好了hello.exe 一般都是直接运行,没有添加任何的参数。但是作为一个合格的EXE,它是可以通过命令行来添加参数的,比如我们可以执行:hello.exe a b c d e

这样ARGV数组中的存储内容如下:

               argv[0] = hello.exe;

    argv[1] = a;

    argv[2] = b;

    argv[3] = c;

    argv[4] = d;

    argv[5] = e;

 所以我觉得这个automation 脚本和QXDM之前的关系应该是通过命令行的参数和命令联系起来的。下午再想想,吃饭去

转载于:https://www.cnblogs.com/linux0537/p/7267734.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值