Analiza argumentów wiersza poleceń

Różne metody analizy argumentów wiersza poleceń są używane przez różne języki programowania do analizowania argumentów wiersza poleceń .

Języki programowania

C

C używa argv do przetwarzania argumentów wiersza poleceń.

Przykładem analizy argumentu C byłoby:

 
     

     
     0  
         
 #include  <stdio.h>  int  main  (  int  argc  ,  char  *  argv  [])  {  int  liczba  ;  for  (  liczba  =  ;  liczba  <  argc  ;  liczba  ++  )  stawia  (  argv  [  liczba  ]);  } 

C ma również funkcje zwane getopt i getopt_long.

C#

 

       
    
        
        
    
 class  TestClass  {  static  void  Main  (  string  []  args  )  {  // Wyświetl liczbę argumentów wiersza poleceń.  Konsola  .  WriteLine  (  argumenty  .  Długość  );  }  } 

Jawa

Przykładem analizy argumentów Java byłoby:

   
          
            
            
        
    
 klasa  publiczna  Echo  {  public  static  void  main  (  String  []  argumenty  )  {  for  (  String  s  :  argumenty  )  {  System  .  na  zewnątrz  println  (  s  );  }  }  } 


Kotlin

Oto kilka możliwych sposobów drukowania argumentów w Kotlinie :

     fun  main  (  args  :  Array  <  String  >  )  =  println  (  args  .  joinToString  ()) 
     fun  main  (  args  :  Array  <  String  >  )  =  println  (  args  .  contentToString  ()) 
   
       
        
 fun  main  (  args  :  Array  <  String  >  )  {  for  (  arg  in  args  )  println  (  arg  )  } 


Perl

Perl używa @ARGV .

  

     
 foreach  $arg  (  @ARGV  )  GT  {  print  $arg  ;  } 

FT

Lub

  0  

     
 foreach  $argnum  (  ..  $#ARGV  )  ST  {  print  $ARGV  [  $argnum  ];  } 

AWK

AWK również używa ARGV .

 
       0     
   
        
   
 BEGIN  {  for  (  i  =  ;  i  <  ARGC  ;  i  ++  )  {  drukuj  ARGV  [  i  ]  }  } 

PHP

PHP używa argc jako liczby argumentów i argv jako tablicy zawierającej wartości argumentów. Aby utworzyć tablicę z argumentów wiersza poleceń w -foo:bar , można użyć następujących elementów:

  
  

  

        
            
         0   
            0   
        
    
     


    

      
         
    
     
 $args  =  parseArgs  (  $argv  );  echo  getArg  (  $args  ,  'foo'  );  funkcja  parseArgs  (  array  $args  )  {  foreach  (  $ args  as  $ arg  )  {  $tmp  =  eksploduj  (  ':'  ,  $ arg  ,  2  );  if  (  $arg  [  ]  ===  '-'  )  {  $args  [  substr  (  $tmp  [  ],  1  )]  =  $tmp  [  1  ];  }  }  zwróć  $args  ;  }  function  getArg  (  array  $args  ,  string  $arg  )  {  if  (  isset  (  $args  [  $arg  ]))  {  return  $args  [  $arg  ];  }  zwróć  fałsz  ;  } 

PHP może również używać getopt() .

Pyton

Python używa sys.argv , np.:

 
   
      zaimportuj  sys  dla  arg  w  sys  .  argv  :  wypisz  arg 

Python ma również moduł o nazwie argparse w standardowej bibliotece do analizowania argumentów wiersza poleceń.

Rakieta

Racket używa parametru current-command-line-arguments i udostępnia bibliotekę racket/cmdline do analizowania tych argumentów. Przykład:



 

   
    
     

  

               
                  
                  

              
                   
                   

 
        
           
            #lang  rakieta  (  wymaga  rakiety/cmdline  )  (  zdefiniuj  uśmiech?  (  make-parametr  #t  ))  (  zdefiniuj  nos?  (  make-parametr  #false  ))  (  zdefiniuj  oczy  (  make-parametr  ":"  ))  (  wiersz poleceń  # :program  "emotikon"  #:once-any  ; dwa poniższe wykluczają się wzajemnie  [(  "-s"  "--smile"  )  "tryb uśmiechu"  (  uśmiech?  #true  )]  [(  "-f"  "--frown "  )  "tryb marszczenia brwi"  (  uśmiech?  #false  )]  #:once-each  [(  "-n"  "--nose"  )  "dodaj nos"  (  nos?  #true  )]  [(  "-e"  "- -eyes"  )  char  "użyj <char> dla oczu"  (  eyes  char  )])  (  printf  "~a~a~a  \n  "  (  oczy  )  (  if  (  nose?  )  "-"  ""  )  (  if  (  uśmiech?  )  ")"  "("  )) 

Biblioteka analizuje długie i krótkie flagi, obsługuje argumenty, umożliwia łączenie krótkich flag i automatycznie obsługuje opcje -h i --help :


 $  rakieta /tmp/c -nfe  8  8-( 

Rexx

Rexx używa arg , np.:

   
	  
 czy  i  =  1  do  słów  (  arg  (  1  ) )  powiedz  słowo  (  arg  (  1  ),  i  )  koniec 

Rdza

Argumenty są w env::args() .

 

  
       

       
       

     
     
 użyj  std  ::  env  ;  fn  main  ()  {  let  args  :  Vec  <  String  >  =  env  ::  args  ().  zbierać  ();  niech  zapytanie  =  &  argumenty  [  1  ];  niech  ścieżka_pliku  =  &  argumenty  [  2  ];  drukuj!  (  "Wyszukiwanie {}"  ,  zapytanie  );  drukuj!  (  "W pliku {}"  ,  ścieżka_pliku  );  } 

Node.js

Programy JavaScript napisane dla Node.js używają zmiennej globalnej process.argv .


 //  konsola argv.js   .  dziennik  (  proces  .  argv  ); 
   $ węzeł argv.js jeden dwa trzy cztery pięć  [  „węzeł”  ,  „/home/avian/argvdemo/argv.js”  ,  „jeden”  ,  „dwa”  ,  „trzy”  ,  „cztery”  ,  „pięć”  ] 

node.js są wywoływane przez uruchomienie interpretera node interpreter z danym plikiem, więc pierwszymi dwoma argumentami będą node i nazwa pliku źródłowego JavaScript. Często przydatne jest wyodrębnienie pozostałych argumentów przez wycięcie podtablicy z procesu.argv .


 //  konsola procesu-args.js   .  log  (  proces  .  argv  .  wycinek  (  2  )); 
 
    $ node proces-args.js jeden  dwa  =  trzy cztery  [  'jeden'  ,  'dwa = trzy'  ,  'cztery'  ]