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/bashMí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/bashaz 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/bashvisszhang '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.