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' ]