Analýza argumentů příkazového řádku - Command-line argument parsing
Odlišný analýza argumentů příkazového řádku metody jsou používány různými programovací jazyky na analyzovat argumenty příkazového řádku.
Programovací jazyky
C
C používá argv
zpracovat argumenty příkazového řádku.[1][2]
Příklad C analýza argumentů by byla:
#zahrnout <stdio.h>int hlavní (int argc, char *argv[]){ int počet; pro (počet=0; počet<argc; počet++) uvádí (argv[počet]);}
Jáva
Příklad Jáva analýza argumentů by byla:
veřejnost třída Echo { veřejnost statický prázdnota hlavní (Tětiva[] args) { pro (Tětiva s: args) { Systém.ven.tisk(s); } }}
Perl
Perl používá @ARGV
.
pro každého $ arg (@ARGV)GT{ tisk $ arg;}
FT
nebo
pro každého $ argnum (0 .. $ # ARGV)SVATÝ{ tisk $ ARGV[$ argnum];}
AWK
AWK používá ARGV
taky.
ZAČÍT { pro ( i = 0; i < ARGC; i++ ) { tisk ARGV[i] }}
PHP
PHP používá argc
jako počet argumentů a argv
jako pole obsahující hodnoty argumentů.[3][4] Chcete-li vytvořit pole z argumentů příkazového řádku v souboru -foo: bar
formátu, lze použít následující:
$ args = parseArgs($ argv);echo getArg($ args, 'foo');funkce parseArgs(pole $ args){ pro každého ($ args tak jako $ arg) { $ tmp = explodovat(':', $ arg, 2); -li ($ arg[0] === '-') { $ args[substr($ tmp[0], 1)] = $ tmp[1]; } } vrátit se $ args;}funkce getArg(pole $ args, tětiva $ arg){ -li (isset($ args[$ arg])) { vrátit se $ args[$ arg]; } vrátit se Nepravdivé;}
PHP může také použít getopt ()
.[5]
Krajta
Krajta používá sys.argv
, např .:
import syspro arg v sys.argv: tisk arg
Python má také modul s názvem argparse
ve standardní knihovně pro analýzu argumentů příkazového řádku.[6]
Raketa
Raketa používá a argumenty aktuálního příkazového řádku
parametr a poskytuje a raketa / cmdline
[7] knihovna pro analýzu těchto argumentů. Příklad:
#lang raketa(vyžadovat raketa / cmdline)(definovat usměj se? (make-parametr # t))(definovat nos? (make-parametr #Nepravdivé))(definovat oči (make-parametr ":"))(příkazový řádek #:program "emotikon" #: kdykoli ; následující dva se vzájemně vylučují [(„-s“ "--usměj se") "režim úsměvu" (usměj se? #skutečný)] [("-F" "--mračit") "zamračený režim" (usměj se? #Nepravdivé)] #: jednou za každého [(„-n“ "--nos") "přidat nos" (nos? #skutečný)] [("-E" „--eyes“) char „use for eyes“ (oči char)])(printf „~ a ~ a ~ a n" (oči) (-li (nos?) "-" "") (-li (usměj se?) ")" "("))
Knihovna analyzuje dlouhé a krátké příznaky, zpracovává argumenty, umožňuje kombinovat krátké příznaky a zpracovává -h
a --Pomoc
automaticky:
$ raketa / tmp / c -nfe 88-(
Node.js
JavaScript programy psané pro Node.js použijte process.argv
globální proměnná.[8]
// argv.jsřídicí panel.log(proces.argv);
$ node argv.js jedna dva tři čtyři pět[ 'uzel', '/home/avian/argvdemo/argv.js', 'jeden', 'dva', 'tři', ‚čtyři ', 'Pět' ]
Node.js programy jsou vyvolány spuštěním tlumočníka uzlu tlumočníka s daným souborem, takže první dva argumenty budou uzel
a název zdrojového souboru JavaScriptu. Často je užitečné extrahovat zbytek argumentů krájením dílčího pole z process.argv
.[9]
// process-args.jsřídicí panel.log(proces.argv.plátek(2));
$ node process-args.js jeden dva=tři čtyři[ 'jeden', 'two = three', ‚čtyři ' ]
Reference
- ^ „Kniha C - argumenty k hlavní stránce“. Publications.gbdirect.co.uk. Citováno 2010-05-31.
- ^ Příklad analýzy argumentů C a možností
- ^ "Manuál PHP". PHP. Citováno 2010-05-31.
- ^ wikibooks: Programování v PHP / CLI
- ^ https://php.net/getopt
- ^ "argparse - analyzátor možností příkazového řádku, argumentů a dílčích příkazů". Dokumentace k Pythonu v2.7.2. Citováno 7. března 2012.
- ^ Referenční příručka rakety, analýza příkazového řádku
- ^ "process.argv". Dokumentace Node.js v10.16.3. Citováno 3. října 2019.
- ^ "Jak analyzovat argumenty příkazového řádku". Dokumentace Node.js Foundation. Citováno 3. října 2019.