Kako prenesem argument v bash skriptu?

How Do I Pass Argument Bash Script



Večina uporabnikov Linux Mint 20 se ob posredovanju argumenta v bash skriptu zatakne. Argumente lahko posredujete kateremu koli skriptu bash, ko se izvede. Obstaja več preprostih in uporabnih načinov posredovanja argumentov v bash skriptu. V tem priročniku za članek vas bomo seznanili z nekaj zelo enostavnimi načini posredovanja in uporabe argumentov v vaših skriptih bash.

Prenos argumentov z uporabo privzetih spremenljivk:

Ustvarite novo datoteko s katerim koli imenom z ukazom na dotik, na primer file.sh.







$dotikIme datoteke



Odprite to novo ustvarjeno datoteko in ji dodajte nekaj bash skripta. Dodal sem nekaj privzetih spremenljivk, npr. 1 USD, 2 USD in 3 USD posledično. Vsi argumenti, ki bodo posredovani skozi terminal, bodo shranjeni v navedenih spremenljivkah.







To datoteko morate zagnati z ukazom ./, ki mu sledijo nekateri argumenti. Kot lahko vidite na sliki, se pri podaji argumentov pojavi napaka: Dovoljenje zavrnjeno. To je zato, ker ta datoteka nima izvršitvenih pravic.

$./ime datoteke argument1 argument2 argument

Za dodelitev izvršilnih pravic tej datoteki uporabite ukaz sudo chmod.



$sudo chmod+x ime datoteke

Zdaj znova zaženite datoteko z istim zgornjim ukazom. Tokrat sem navedel različne argumente. Videli boste, da so na novo preneseni argumenti shranjeni v privzetih spremenljivkah.

Prenos imena skripta lupine kot argument:

Zdaj z uporabo iste stare datoteke file.sh z majhno spremembo privzetih spremenljivk. V skript morate dodati spremenljivko $ 0, kot je prikazano.

Ob zagonu istega ukaza ./ shell script, ime vašega skripta lupine, npr. ./ime datoteke bo shranjeno v spremenljivki $ 0 kot argument.

Prenos argumentov kot niza na spremenljivko:

Začenši z isto datoteko file.sh, morate v stari skript dodati nekaj dodatnih vrstic. Razglasite spremenljivko z imenom array. Dodajte privzeto spremenljivko [zaščiteno po e -pošti], ki bo argumente, ki jih je vnesel uporabnik, shranila kot matriko. Ti argumenti bodo razčlenjeni v spremenljivko matriko. V zadnji vrstici bodo prikazani vsi argumenti matrike spremenljivk, razvrščeni po številki indeksa.

Izvedite skript ./ shell. Videli boste, da bo prikazal argumente ali vrednosti, shranjene kot matrika v [email protected], razčlenjeni na spremenljivko, ne pa tudi imena skripta lupine v drugem stavku echo. Imeli boste naslednji izhod.

$./ime datoteke argument1 argument2 argument

Uporabite isto datoteko z istim skriptom. Samo odstranite $ {array [3]} iz zadnje vrstice, kot je jasno na sliki.

Po izvedbi ukaza ./ boste videli podoben izhod, kot ste ga dobili v zgornjem primeru, brez sprememb.

Enak rezultat lahko dobite tudi z zamenjavo zadnje vrstice bash skripta z eno samo besedo. V izjavo echo morate dodati samo [email protected] in prikazal bo argumente, ki so prisotni v tem nizu spremenljivk.

Če znova zaženete ukaz ./, boste dobili enake rezultate.

Preverite skupno število predloženih argumentov:

Nasprotno, če želite izvedeti skupno število argumentov, ki jih je posredoval uporabnik, lahko to tudi storite. V ta namen morate zamenjati [email protected] z $# v echo.

Ponovno izvedite ukaz ./, zdaj boste videli celotno število argumentov, posredovanih skriptu. V našem primeru se kot vrednost posredujejo 3 argumenti.

Ustvari vrstice za izhod argumentov:

Ustvarite novo datoteko test.sh v domačem imeniku. Dodajte bash skript, kot je prikazano.

Zdaj zaženite isti stari ukaz z različnimi argumenti. Najprej boste videli napako: Dovoljenje zavrnjeno.

Če želite tej datoteki dodeliti sudo privilegije, morate izvesti ukaz chmod. Po tem znova zaženite ukaz skripta ./ shell. In dobili boste izhod argumentov vrstice za vrstico.

Omejite spremenljivko s številko indeksa argumentov:

Če želite spremenljivko omejiti z njeno indeksno številko, lahko to storite zelo enostavno. Za znakom $ dodajte kodraste oklepaje in dodajte številko indeksa argumentov, ki jo želite prikazati pred drugimi argumenti.

Če so argumenti, ki jih posredujejo uporabniki, manjši od indeksne številke, navedene v mejni spremenljivki, boste dobili prazno vrednost argumenta. Kot primer sem navedel 4 argumente, vendar sem dal vrednost argumenta 05, ki naj se prikaže. V tem primeru bo spremenljivka prikazana prazna, ker peti argument ni bil poslan.

Ko pa podate enako ali več argumentov v ukazu, boste dobili vrednost, prikazano v rezultatu, kot je prikazano.

Preverjanje argumentov o določeni vrednosti:

V domačem imeniku ustvarite novo datoteko z imenom Check.sh. Dodajte isti bash skript, kot je prikazano na spodnji sliki. V tem skriptu imamo spremenljivko var za shranjevanje vrednosti argumenta, ki jo posreduje uporabnik. Nato imamo stavek if, ki bo preveril, ali se vrednost argumenta ujema ali ne. Če se vrednost argumenta ujema z vrednostjo, navedeno v oklepaju, se izvede prvi stavek echo. Če se vrednost ne ujema, se izvede druga izjava o odmevu.

Ko zaženemo ukaz shell script, bo povzročil napako. Z uporabo ukaza chmod lahko to napako popravimo.

Po tem izvedite lupinski skript za določeno datoteko z neko vrednostjo argumenta. V našem primeru smo podali Aqsa kot vrednost argumenta, ki je enaka vrednosti, prikazani v oklepaju. Tako bo bash skript izvedel prvi stavek echo, kot je prikazano.

Po drugi strani pa, če v skriptu lupine navedete različne vrednosti argumentov, bo prikazan drugi stavek echo. Tu sem kot vrednost argumenta dodal Rimsha, ki se razlikuje od vrednosti, navedene v stavku if. Tako bo bash skript izvedel drugi stavek echo.

Zaključek:

Upam, da vam je ta vodnik dovolj pomagal, da ste se dobro razumeli pri prenosu argumentov na privzete spremenljivke, podali vrednost argumenta kot matriko spremenljivki, dobili skupno število predloženih argumentov, izhod argumentov po vrsticah, omejili argument izhod z uporabo indeksne številke, preverjanje argumenta posebne vrednosti in še veliko več.