Ako zvládnuť argumenty príkazového riadku v Bash?

Ako Zvladnut Argumenty Prikazoveho Riadku V Bash



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/bash

Zatiaľ č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/bash

na 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/bash

ozvena '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.