Hogyan kezeljük a parancssori argumentumokat a Bash-ban?

Hogyan Kezeljuk A Parancssori Argumentumokat A Bash Ban



Linuxban parancssori argumentumokat használunk a bash szkript bemeneteként. A Bash ezeket a parancssori argumentumokat szekvenciálisan veheti fel, és opcióként elemzi őket. Ezek az argumentumok lehetővé teszik a műveletek és a szkript kimenetének dinamikus befolyásolását.

Ezeket az argumentumokat különbözőképpen konfigurálhatja a bemenet és a kimenet befolyásolása érdekében. Ezért elengedhetetlen a parancssori arg-ok kezelése a bash-ban, de sok új felhasználónak meg kell tanulnia, hogyan kell ezt megtenni. Tehát ebben az útmutatóban elmagyarázzuk a parancssori argumentumok bash-ban történő kezelésének különböző módjait.







Hogyan kezeljük a parancssori argumentumokat a Bash-ban?

A Bash-ban többféleképpen is kezelheti a parancssori paramétereket, ezért vessünk egy pillantást ezekre, hogy rövid információkat kapjunk:



A getopt funkció



A getopt függvény praktikus, mivel biztosítja a beállításokat és a szintaxist az argumentumok meghatározásához és elemzéséhez a bash-ban. Ez a Linux beépített funkciója, amelyet az argumentumok alapján egy adott formátumú adatbázisfájl vagy jelentés létrehozásakor használhat. A getopt függvény segít a rövid parancssori argumentumok elemzésében, mivel kétféle argumentum létezik:





  • Rövid érvek: Ezek az egykarakteres argumentumok, amelyeket kötőjel követ. Például az -a, -l, -h stb. néhány példa az egyedi argumentumokra.

  • Hosszú érvek: Ezek a több karakterből álló argumentumok, amelyeket dupla kötőjel követ. Különféle példák vannak a hosszú argumentumokra, például –all, –list, –help stb.

Vegyünk egy példát, ahol a parancssori argumentumokat a getopt segédprogrammal kezeljük. Létrehoztunk egy „getopt.sh” nevű bash szkriptet, amely a következő információkat tartalmazza:



!/ kuka / bash

míg getopts 'A:B:C:D:' részletek; csináld

ügy ' $részletek ' ban ben

A )

visszhang 'Az állampolgár neve $OPTARG ' ;;

B )

visszhang „Az állampolgári igazolvány az $OPTARG ' ;;

C )

visszhang 'Születési hely $OPTARG ' ;;

D )

visszhang „A foglalkozás az $OPTARG ' ;;

* )

kijárat 1 ;;

esac

Kész

váltás ' $(($OPTING -1) )'



ha [ ! -Val vel 1 dollár ] ; akkor

visszhang 'Családi állapot $1'

más

visszhang 'Nincs bejegyzés'

kijárat 1

lenni



ha [ ! -Val vel 2 dollár ] ; akkor

visszhang 'Családtagok 2 dollár'

lenni

Most futtassuk le a szkriptet a szükséges argumentumokkal a bemenetben:

Amint a fenti képen látható, a szkriptet csak getopt függvényekkel futtatjuk, majd normál argumentumokat adunk hozzá a teljes eredmény eléréséhez.

A zászlók használata

A zászlók nem más, mint egyedi karakterek, amelyeket kötőjel (-) előz meg. Amikor az argumentumokat a getopt függvénnyel adjuk át, zászlókat használunk. -a, -b, -c néhány példa a zászlókra. A szkripthez például szükség van egy állampolgár nevére, személyi igazolványára, helyére, életkorára és foglalkozására. Ezért a j, k, l, m, n zászlókat használtuk az állampolgár nevének, azonosítójának, helyének, életkorának és foglalkozásának egyidejű meghatározására:

#!/bin/bash

Míg getopts j:k:l:m:n: flag_info

csináld

ügy ' ${flag_info} ' ban ben
< ol >
< hogy > j ) polgárnév = ${OPTARG} ;; hogy >
< hogy > k ) polgárid = ${OPTARG} ;; hogy >
< hogy > l ) hely = ${OPTARG} ;; hogy >
< hogy > m ) kor = ${OPTARG} ;; hogy >
< hogy > n ) Foglalkozása = ${OPTARG} ;; hogy >
ol >
esac

Kész

visszhang 'Íme a megadott adatok:'

visszhang 'Polgár neve: $polgárnév ' ;

visszhang 'Polgár azonosító: $polgárid ' ;

visszhang 'Hely: $hely ' ;

visszhang 'Kor: $kor ' ;

visszhang 'Foglalkozása: $foglalkozás ' ;

A szkript a következő eredményt adja a terminálban:

. /< forgatókönyv > .SH -j Danny -k 476 -l Toronto -m 25 -n Szerző

Használata [e-mail védett] Hurkokkal

Az ' [e-mail védett] ” változó nem más, mint az összes bemeneti argumentum tömbje. Bármennyi bemenetet átadhatunk a „ [e-mail védett] ” változó. Ezt a változót ciklusként használhatja az argumentumok iterálásához. Az ' [e-mail védett] ” változó akkor jól jön; nem ismeri a bemeneti méretet, és nem tudja elfogadni a helyzeti argumentumokat. Ezért használhatja a „ [e-mail védett] ”  ahelyett, hogy újra és újra meghatározná a getopt függvényt. Íme egy példa a hurkok és a [e-mail védett] együtt egy forgatókönyvben:

#!/bin/bash

az egyiken = ( „$ @ )



ha [ $# -gt 1 ]

akkor



add hozzá =$ ( ( ${num[0]} + ${num[1]} ) )

visszhang 'Az összes szám összeadása: $add '



kivonás =$ ( ( ${num[0]} - ${num[1]} - ${num[2]} ) )

visszhang 'A számok kivonása: $kivonás '



szaporodnak =$ ( ( ${num[0]} * ${num[1]} * ${num[2]} ) )

visszhang 'A számok szorzata: $szorozni '



osztály1 =$ ( ( ${num[0]} / ${num[1]} ) )

visszhang 'Osztálya a ${num[0]} és ${num[1]} ez: $osztály1 '



osztály2 =$ ( ( ${num[1]} / ${num[2]} ) )

visszhang 'Része ${num[1]} és ${num[2]} ez: $divízió2 '



osztály 3 =$ ( ( ${num[0]} / ${num[2]} ) )

visszhang 'Része ${num[0]} és ${num[2]} ez: $divízió2 '



lenni

A fenti szkript különböző aritmetikai számításokat hajt végre a parancssori argumentumok alapján. Például 50, 35 és 15 értéket adtunk meg bevitelként:

Pozíciós paraméterek használata

Hozzáférhet a pozícióparaméterekhez, mivel először a $1, majd a $2 és így tovább. Például hozzunk létre egy szkriptet, amely egy nevet olvas be első argumentumként, majd egy várost másodikként. Ha azonban először a város, majd a név mellett halad el, akkor a nevet tekinti városnak és fordítva. Vessünk egy mélyebb ugrást a következő szkriptbe, hogy megértsük ezt a koncepciót:

#!/bin/bash

visszhang 'Itt vannak a megadott adatok'

visszhang 'név $1'

visszhang 'város 2 dollár'

Hozzá kell adnia a nevet és a várost, amikor a parancsfájlt végrehajtja a terminálban:

Becsomagolás

Ez minden, amit tudnia kell a bash parancssori argumentumainak kezelési módszereiről. A megfelelő példákkal különböző megközelítéseket ismertettünk, amelyeket kipróbálhat. Különféle parancsok állnak rendelkezésre, ha argumentumokat szeretne hozzáadni a szkripthez. Ezért mindenképpen látogassa meg a Linuxhint-et, hogy többet megtudjon róluk.