Komut satırı bağımsız değişkenini çözümleme - Command-line argument parsing

Farklı komut satırı bağımsız değişkenini çözümleme yöntemler farklı tarafından kullanılır Programlama dilleri -e ayrıştırmak komut satırı argümanları.

Programlama dilleri

C

C kullanır argv komut satırı argümanlarını işlemek için.[1][2]

Bir örnek C bağımsız değişken çözümlemesi şöyle olacaktır:

#Dahil etmek <stdio.h>int ana (int argc, kömür *argv[]){    int Miktar;    için (Miktar=0; Miktar<argc; Miktar++)        koyar (argv[Miktar]);}

Java

Bir örnek Java bağımsız değişken çözümlemesi şöyle olacaktır:

halka açık sınıf Eko {    halka açık statik geçersiz ana (Dize[] argümanlar) {        için (Dize s: argümanlar) {            Sistem.dışarı.println(s);        }    }}

Perl

Perl kullanır @ARGV.

her biri için $ arg (@ARGV)GT{    Yazdır $ arg;}

FT

veya

her biri için $ argnum (0 .. $ # ARGV)ST{    Yazdır $ ARGV[$ argnum];}

AWK

AWK kullanır ARGV Ayrıca.

BAŞLA {   için ( ben = 0; ben < ARGC; ben++ )   {       Yazdır ARGV[ben]   }}

PHP

PHP kullanır argc argüman sayısı olarak ve argv olarak dizi argümanların değerlerini içeren.[3][4] İçindeki komut satırı argümanlarından bir dizi oluşturmak için -foo: bar biçimlendirmek için aşağıdakiler kullanılabilir:

$ args = parseArgs($ argv);Eko getArg($ args, 'foo');işlevi parseArgs(dizi $ args){    her biri için ($ args gibi $ arg) {        $ tmp = patlamak(':', $ arg, 2);        Eğer ($ arg[0] === '-') {            $ args[substr($ tmp[0], 1)] = $ tmp[1];        }    }    dönüş $ args;}işlevi getArg(dizi $ args, dizi $ arg){    Eğer (isset($ args[$ arg])) {        dönüş $ args[$ arg];    }    dönüş yanlış;}

PHP ayrıca kullanabilir getopt ().[5]

Python

Python kullanır sys.argv, Örneğin.:

ithalat sysiçin argüman içinde sys.argv:    Yazdır argüman

Python'da ayrıca argparse komut satırı argümanlarını ayrıştırmak için standart kitaplıkta.[6]

Raket

Raket kullanır geçerli komut satırı argümanları parametresi ve bir raket / cmdline[7] Bu argümanları ayrıştırmak için kütüphane. Misal:

#lang raket(gerek raket / cmdline)(tanımlamak gülümsemek? (make-parametresi #t))(tanımlamak burun?  (make-parametresi #yanlış))(tanımlamak gözler   (make-parametresi ":"))(Komut satırı #: program "ifade"              #: bir kez ; aşağıdaki ikisi birbirini dışlar              [("-s" "--gülümsemek") "gülümseme modu" (gülümsemek? #doğru)]              [("-f" "--frown") "kaşlarını çatma modu" (gülümsemek? #yanlış)]              #: her biri bir              [("-n" "--burun") "burun ekle"  (burun? #doğru)]              [("-e" "--gözler") kömür "gözler için  kullanın" (gözler kömür)])(printf "~ a ~ a ~ a n"        (gözler)        (Eğer (burun?) "-" "")        (Eğer (gülümsemek?) ")" "("))

Kütüphane uzun ve kısa bayrakları ayrıştırır, argümanları işler, kısa bayrakları ve tutamaçları birleştirmeye izin verir -h ve --Yardım Edin otomatik olarak:

$ racket / tmp / c -nfe 88-(

Node.js

JavaScript için yazılmış programlar Node.js kullan process.argv küresel değişken.[8]

// argv.jskonsol.günlük(süreç.argv);
$ node argv.js bir iki üç dört beş[ "düğüm",  '/home/avian/argvdemo/argv.js',  'bir',  'iki',  'üç',  'dört',  'beş' ]

Node.js programlar, yorumlayıcı düğüm yorumlayıcısını belirli bir dosya ile çalıştırarak çağrılır, bu nedenle ilk iki argüman düğüm ve JavaScript kaynak dosyasının adı. Bir alt diziyi bir alt diziden dilimleyerek geri kalan bağımsız değişkenleri ayıklamak genellikle yararlıdır. process.argv.[9]

// process-args.jskonsol.günlük(süreç.argv.dilim(2));
$ node process-args.js one iki=üç dört[   'bir',  "iki = üç",  'dört' ]

Referanslar

  1. ^ "C Kitabı - Ana Tartışmalar". Publications.gbdirect.co.uk. Alındı 2010-05-31.
  2. ^ C bağımsız değişkenlerini ve seçeneklerini çözümlemeye bir örnek
  3. ^ "PHP Kılavuzu". PHP. Alındı 2010-05-31.
  4. ^ wikibooks: PHP Programlama / CLI
  5. ^ https://php.net/getopt
  6. ^ "argparse - Komut satırı seçenekleri, argümanlar ve alt komutlar için ayrıştırıcı". Python v2.7.2 belgeleri. Alındı 7 Mart 2012.
  7. ^ Racket başvuru kılavuzu, Komut Satırı Ayrıştırma
  8. ^ "process.argv". Node.js v10.16.3 Belgeleri. Alındı 3 Ekim 2019.
  9. ^ "Komut satırı bağımsız değişkenleri nasıl ayrıştırılır". Node.js Foundation Belgeleri. Alındı 3 Ekim 2019.