logo

Perl parancssori argumentumok

A parancssori argumentumokat ugyanúgy küldi el egy Perl programnak, mint bármely más nyelven. Az @ARGV tömb tartalmazza a parancssori argumentumot. Nincs szükség változók használatára, még akkor sem, ha a „use szigorú” kifejezést használja. Alapértelmezés szerint ez a változó mindig létezik, és a parancssorból származó értékek automatikusan ebbe a változóba kerülnek. A szkript parancssori argumentumainak eléréséhez csak az @ARGV tömbből kell olvasnia.

A Perl lehetővé teszi az @ARGV tömb használatát fájlnévként a használatával. Az $ARGV tartalmazza az aktuális fájl nevét, amikor innen olvas.

@ARGV tömbelemek

Az @ARGV tömb ugyanúgy működik, mint egy normál tömb. Első argumentuma $ARGV[0], második $ARGV[1], és így tovább.


Példa Perl parancssori argumentumra

Lássunk egy egyszerű példát a parancssori argumentumok nyomtatására. Ebben a példában üdvözlő üzenetet fogunk nyomtatni, amelyben a felhasználó neve lesz a parancssor argumentuma. Két parancssori argumentumra van szükségünk a felhasználó kereszt- és vezetékneveként.

1. lépés Hozzon létre egy szkriptet üdvözlöm.pl a rendszeredben.

 #!/usr/bin/perl -w # (1) check for the number of command-line arguments entered $number_args = $#ARGV + 1; if ($number_args != 2) { print 'Wrong entry. Please enter your full name.
'; exit; } # (2) if two command line arguments received, $firstName=$ARGV[0]; $lastName=$ARGV[1]; print 'Welcome $firstName $lastName at JavaTpoint.
'; 

A fenti szkriptben először ellenőrzi, hogy két parancssori argumentum megadva van-e vagy sem. Ha nem, akkor rossz beviteli hibát ad. És ha igen, akkor ezeket az argumentumokat $ARGV[0] és $ARGV[1] néven fogja feldolgozni.

2. lépés Futtassa a szkriptet a konzolon, mint perl welcome.pl Christian Gray

Megjegyzés: Mielőtt kiadná ezt a parancsot, győződjön meg arról, hogy a welcome.pl szkriptet tartalmazó könyvtárban van

Perl parancssori argumentumok 1

Ez a kimenet, amelyet a konzolon fog kapni.

2. lépés Futtassa a szkriptet a konzolon, mint perl welcome.pl Christian

Itt csak egy argumentumot adunk át a parancssorból.

Perl parancssori argumentumok 2

A kimenetben egy argumentum átadásakor rossz beviteli üzenet látható.


Példa a Perl parancssori argumentumokra a ciklus használatával

Most futtatunk egy ciklust a parancssori argumentumok kinyomtatásához. Ebben a példában annyi argumentumot adhat meg, amennyit csak akar.

1. lépés Hozzon létre egy szkriptet loop.pl a rendszeredben.

 #!/usr/bin/perl $get_args = $#ARGV + 1; print 'Total command line arguments received: $get_args
'; foreach $argument (0 .. $#ARGV) { print '$ARGV[$argument]
'; } 

2. lépés Futtassa a szkriptet a konzolon, mint perl hurok.pl a b c d e f g h

Perl parancssori argumentumok 3

Nézze meg a fenti kimenetet, a parancssorban átadott összes argumentumot is megjeleníti. Itt 8 érvet haladtunk át.


Perl Getopt::Long

Az egyszerű parancssori opciókat az ?s kapcsolóval lehet végrehajtani. Az összetett parancssori beállítások a Getopt::Std és a Getopt::Long használatával érhetők el.

A Getopt azt jelenti GetOptions . A @ARGV tartalmát az általunk megadott konfiguráció alapján dolgozza fel. Igaz vagy hamis értéket ad vissza a feldolgozás alapján.

Példa:

Ebben a példában jól megkapjuk a parancssorból a felhasználó életkorát.

 use strict; use warnings; use 5.010; use Getopt::Long qw(GetOptions); my $x; GetOptions('from=s' => $x) or die 'Usage: $0 --from NAME
'; say'According to your age which is $x:'; if ($x >=18) { say 'You are eligible to vote'; } 

Deklaráltunk egy változót $x amelybe beszúrt értéket tárol --tól től a standard konzolról. A from=s kimondja a meghívott parancssori paramétert --tól től egy madzaggal utána. Továbbra is leképeződik a $x változóra. A fordított perjel () azt jelenti, hogy hivatkozást adunk át a változóra.

Ez a szkript erre fog váltani a részt csak akkor fogjuk futtatni ezt a szkriptet, ha átadunk valamit, ami úgy néz ki, mint egy paraméternév, és a betűvel kezdődik (-) de ebben a szkriptben nincs deklarálva.

Most ezt a programot fogjuk futtatni.

Kimenet:

Perl parancssori argumentumok 4

Nézd meg a kimenetet, a konzolon az életkor megadása után a fenti kimenetet kaptuk.