V Linuxe používame argumenty príkazového riadka ako vstup pre bash skript. Bash môže prevziať tieto argumenty príkazového riadka postupne a analyzovať ich ako možnosť. Tieto argumenty vám umožňujú dynamicky ovplyvňovať akcie a výstup skriptu.
Tieto argumenty môžete nakonfigurovať odlišne, aby ste ovplyvnili vstup a výstup. To je dôvod, prečo je spracovanie argumentov príkazového riadka v bash nevyhnutné, ale mnohí noví používatelia sa musia naučiť, ako to urobiť. Takže v tejto príručke vysvetlíme rôzne spôsoby spracovania argumentov príkazového riadka v bash.
Ako zvládnuť argumenty príkazového riadku v Bash?
Existujú rôzne spôsoby, ako spracovať argumenty príkazového riadku v Bash, takže sa na ne pozrime, aby sme získali stručné informácie:
Funkcia getopt
Funkcia getopt je užitočná, pretože poskytuje možnosti a syntax na definovanie a analýzu argumentov v bash. Je to vstavaná funkcia Linuxu, ktorú môžete použiť pri vytváraní databázového súboru alebo zostavy v špecifickom formáte na základe argumentov. Funkcia getopt pomáha analyzovať krátke argumenty príkazového riadka, pretože existujú dva typy argumentov:
- Krátke argumenty: Toto sú jednoznakové argumenty, za ktorými nasleduje spojovník. Napríklad -a, -l, -h atď. je niekoľko príkladov jednotlivých argumentov.
- Dlhé argumenty: Toto sú viacznakové argumenty, za ktorými nasleduje dvojitá pomlčka. Existujú rôzne príklady dlhých argumentov, ako napríklad –all, –list, –help atď.
Zoberme si príklad, kde budeme spracovávať argumenty príkazového riadku pomocou nástroja getopt. Vytvorili sme bash skript s názvom „getopt.sh“, ktorý obsahuje nasledujúce informácie:
!/ kôš / bash
zatiaľ čo getopts 'A B C D:' podrobnosti; robiť
prípad ' $details ' v
A )
ozvena „Občianske meno je $ OPTARG ' ;;
B )
ozvena „Občiansky preukaz je $ OPTARG ' ;;
C )
ozvena „Miesto narodenia je $ OPTARG ' ;;
D )
ozvena „Povolanie je $ OPTARG ' ;;
* )
VÝCHOD 1 ;;
esac
hotový
posun ' $(($OPTING -1) )'
ak [ ! - S 1 dolár ] ; potom
ozvena 'Rodinný stav $ 1'
inak
ozvena 'Žiadne položky'
VÝCHOD 1
byť
ak [ ! - S 2 doláre ] ; potom
ozvena 'Rodinní členovia 2 doláre'
byť
Teraz spustite skript s požadovanými argumentmi vo vstupe:
Ako môžete vidieť na obrázku vyššie, spúšťame skript iba s funkciami getopt a potom pridáme normálne argumenty, aby sme získali úplný výsledok.
Používanie vlajok
Príznaky nie sú nič iné ako jednotlivé znaky, pred ktorými sú spojovníky (-). Keď odovzdávame argumenty pomocou funkcie getopt, používame príznaky. -a, -b, -c sú niektoré príklady príznakov. Skript napríklad vyžaduje meno občana, ID, miesto, vek a povolanie. Preto sme použili príznaky j, k, l, m, n, aby sme súčasne definovali meno občana, ID, miesto, vek a povolanie:
#!/bin/bashZatiaľ čo getopts j:k:l:m:n: informácie o vlajke
robiť
prípad ' ${flag_info} ' v
< ol >
< že > j ) občianske meno = ${OPTARG} ;; že >
< že > k ) občiansky = ${OPTARG} ;; že >
< že > l ) miesto = ${OPTARG} ;; že >
< že > m ) Vek = ${OPTARG} ;; že >
< že > n ) povolanie = ${OPTARG} ;; že >
ol >
esac
hotový
ozvena 'Tu sú zadané údaje:'
ozvena 'Občianske meno: $citizenname ' ;
ozvena 'Občiansky preukaz: $citizenid ' ;
ozvena 'Miesto: $miesto ' ;
ozvena 'Vek: $vek ' ;
ozvena 'Povolanie: $occupation ' ;
Skript poskytne v termináli nasledujúci výsledok:
. /< skript > .sh -j Danny -k 476 -l Toronto -m 25 -n Autor
Použitím [e-mail chránený] So slučkami
' [e-mail chránený] ” premenná nie je nič iné ako pole všetkých vstupných argumentov. Môžeme odovzdať ľubovoľný počet vstupov pomocou „ [e-mail chránený] “premenná. Túto premennú môžete použiť ako cyklus na iteráciu argumentov. ' [e-mail chránený] ” potom príde vhod premenná; nepoznáte vstupnú veľkosť a nemôžete prijať pozičné argumenty. Preto môžete použiť „ [e-mail chránený] ” namiesto opätovného definovania funkcie getopt. Tu je príklad použitia slučiek a [e-mail chránený] spolu v scenári:
#!/bin/bashna jeden = ( „$ @ “ )
ak [ # $ -gt 1 ]
potom
pridať = $ ( ( ${num[0]} + ${num[1]} ) )
ozvena 'Sčítanie všetkých čísel je: $add '
odčítanie = $ ( ( ${num[0]} - ${num[1]} - ${num[2]} ) )
ozvena 'Odčítanie čísel je: $odčítanie '
množiť = $ ( ( ${num[0]} * ${num[1]} * ${num[2]} ) )
ozvena 'Násobenie čísel je: $násobiť '
divízia1 = $ ( ( ${num[0]} / ${num[1]} ) )
ozvena 'Rozdelenie ${num[0]} a ${num[1]} je: $division1 '
divízia2 = $ ( ( ${num[1]} / ${num[2]} ) )
ozvena 'Rozdelenie ${num[1]} a ${num[2]} je: $division2 '
divízia3 = $ ( ( ${num[0]} / ${num[2]} ) )
ozvena 'Rozdelenie ${num[0]} a ${num[2]} je: $division2 '
byť
Vyššie uvedený skript vykonáva rôzne aritmetické výpočty na základe argumentov príkazového riadka. Ako vstup sme napríklad zadali 50, 35 a 15:
Použitie pozičných parametrov
K pozičným parametrom môžete pristupovať tak, že najprv pristupujú k $1, potom k $2 atď. Vytvorme napríklad skript, ktorý ako prvý argument prečíta meno a ako druhý potom mesto. Ak však prejdete najskôr mestom a potom názvom, potom to považuje názov za mesto a naopak. Poďme sa hlbšie ponoriť do nasledujúceho skriptu, aby sme pochopili tento koncept:
#!/bin/bashozvena 'Tu sú zadané údaje'
ozvena 'meno $1'
ozvena 'mesto 2 doláre'
V čase spustenia skriptu v termináli musíte pridať názov a mesto:
Zabaliť sa
Toto je všetko, čo potrebujete vedieť o metódach spracovania argumentov príkazového riadku v bash. Vysvetlili sme rôzne prístupy, ktoré si môžete vyskúšať na vhodných príkladoch. Ak chcete do skriptu pridať argumenty, existujú rôzne príkazy. Takže nezabudnite navštíviť Linuxhint, aby ste sa o nich dozvedeli viac.