zoukankan      html  css  js  c++  java
  • 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> 
    "
        . "Eg:     Perl grep_isf.pl s1.isf "MC_RESET|jammer in max bin" 
    ";
    
       if ($#ARGV < 0)
       {
          print "
    $Help
    ";
          return $RC;
       }
    
       my $ISFFileName = $ARGV[0];
       if ($ISFFileName eq "")
       {
          $Txt = "Invalid ISF file name
    
    " . $Help;
          print "
    $Txt";
    
          return $RC;
       }
    
       $ISFAbsolutePath = GetPathFromScript();
       if ($ISFAbsolutePath eq "")
       {
          $Txt = "Invalid ISF file name
    
    " . $Help;
          print "
    $Txt";
    
          return $RC;
       }
       else
       {
          $ISFAbsolutePath .= $ISFFileName;
       }
    
       $SearchString = $ARGV[1];
       if ($SearchString eq "")
       {
          $Txt = "Invalid Search String
    
    " . $Help;
          print "
    $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之前的关系应该是通过命令行的参数和命令联系起来的。下午再想想,吃饭去

    大多数想法要么平庸,要么更糟糕,这很大程度上因为绝妙的想法难得一见,而且他们还要在我们身边这个充斥了各种恶俗的所谓常识的环境中孕育生长。
  • 相关阅读:
    Dockerfile使用案例
    Centos创建sudo用户免密使用
    yaml实例
    k8s学习过程中需要注意的地方
    docker部署redmine项目管理软件
    kubernetes陈述式常用命令
    mysql误删除数据后如何恢复
    kubeadm安装的k8s集群卸载方式
    虚拟机vmware centos7 扩展磁盘空间
    'React/RCTBundleURLProvider.h' file not found
  • 原文地址:https://www.cnblogs.com/linux0537/p/7267734.html
Copyright © 2011-2022 走看看