Kako prenijeti argument u bash skripti?

How Do I Pass Argument Bash Script



Većina korisnika Linux Mint 20 zaglavi se prilikom prenošenja argumenta u bash skripti. Argumente možete prenijeti u bilo koju bash skriptu kada se izvrši. Postoji nekoliko jednostavnih i korisnih načina za prosljeđivanje argumenata u bash skripti. U ovom vodiču za članak ćemo vas obavijestiti o nekim vrlo lakim načinima prenošenja i korištenja argumenata u vašim bash skriptama.

Prosljeđivanje argumenata pomoću zadanih varijabli:

Izradite novu datoteku s bilo kojim imenom pomoću naredbe za dodir, npr. File.sh.







$dodirnaziv datoteke



Otvorite ovu novostvorenu datoteku i dodajte joj bash skriptu. Dodao sam neke zadane varijable, npr. Prema tome, 1 USD, 2 USD i 3 USD. Koji god argumenti budu proslijeđeni kroz terminal bit će pohranjeni u navedenim varijablama.







Ovu datoteku morate pokrenuti pomoću naredbe ./ nakon koje slijede neki argumenti. Kao što možete vidjeti na slici, kada sam proslijedio argumente, došlo je do pogreške: Dopuštenje odbijeno. To je zato što ova datoteka nema prava izvršavanja.

$./ime datoteke argument1 argument2 argument

Stoga za dodjelu prava izvršavanja ovoj datoteci upotrijebite naredbu sudo chmod.



$sudo chmod+x naziv datoteke

Sada ponovno pokrenite datoteku koristeći istu gornju naredbu. Ovaj put sam iznio različite argumente. Vidjet ćete da su nedavno proslijeđeni argumenti pohranjeni u zadanim varijablama.

Dopuštanje naziva skripte ljuske kao argument:

Sada, koristeći istu staru datoteku file.sh s malom promjenom u zadanim varijablama. Morate dodati varijablu $ 0 u skriptu kao što je prikazano.

Prilikom izvođenja iste naredbe ./ shell script, naziv vaše skripte ljuske, npr. ./ime datoteke bit će pohranjeno u varijabli $ 0 kao argument.

Prosljeđivanje argumenata kao niza varijabli:

Počevši od iste datoteke file.sh, morate dodati neke dodatne retke u staru skriptu. Proglasite varijablu imenom array. Dodajte zadanu varijablu [zaštićena e -poštom] koja će pohraniti argumente koje je korisnik unio kao niz. Ti će se argumenti raščlaniti na varijabilni niz. U zadnjem retku prikazat će se svi argumenti varijabilnog niza razvrstani prema broju indeksa.

Izvršite ./ shell skriptu. Vidjet ćete da će prikazati argumente ili vrijednosti pohranjene kao niz u [email protected] raščlanjenom na varijabilni niz, ali ne i naziv skripte ljuske u drugoj naredbi echo. Imat ćete sljedeći izlaz.

$./ime datoteke argument1 argument2 argument

Koristite istu datoteku s istom skriptom. Samo uklonite $ {array [3]} iz zadnjeg retka kao što je jasno na slici.

Nakon izvršavanja naredbe ./ vidjet ćete sličan izlaz kao u gornjem primjeru, bez promjena.

Isti rezultat možete dobiti i zamjenom zadnjeg retka bash skripte jednom jedinom riječju. Morate samo dodati [email protected] u echo izraz, a on će prikazati argumente prisutne u ovom nizu varijabli.

Ponovnim pokretanjem naredbe ./ dobit ćete iste rezultate.

Provjeri ukupan broj argumenata koji su proslijeđeni:

Naprotiv, ako želite znati ukupan broj argumenata koje je korisnik prenio, to možete i učiniti. U tu svrhu samo trebate zamijeniti [email protected] s $# u echo -u.

Ponovno izvršavanje naredbe ./ Sada ćete vidjeti cijeli niz argumenata prenesenih u skriptu. U našem slučaju, 3 argumenta se prenose kao vrijednost.

Stvaranje argumenata redak po redak:

Izradite novu datoteku test.sh u kućnom direktoriju. Dodajte bash skriptu kao što je prikazano.

Sada pokrenite istu staru naredbu s različitim argumentima. Prvo ćete vidjeti pogrešku: Dopuštenje odbijeno.

Morate izvršiti naredbu chmod da biste ovoj datoteci dodijelili sudo privilegije. Nakon toga ponovno pokrenite naredbu ./ shell script. I dobit ćete redak po redak ispis argumenata.

Ograničite varijablu pomoću broja indeksa argumenata:

Ako želite ograničiti varijablu pomoću njezinog indeksnog broja, to možete učiniti vrlo jednostavno. Dodajte kovrčave zagrade iza znaka $ i dodajte broj indeksa argumenata koji želite prikazati prije ostalih argumenata.

Ako su argumenti koje su dali korisnici manji od broja indeksa navedenog u graničnoj varijabli, dobit ćete praznu vrijednost argumenta. Na primjer, naveo sam 4 argumenta, ali sam dao vrijednost 05 argumenta za prikaz. U ovoj situaciji, varijabla će biti prikazana prazna jer peti argument nije proslijeđen.

No, kada u naredbi proslijedite jednak ili veći broj argumenata, dobit ćete vrijednost prikazanu u rezultatu kao što je prikazano.

Provjera argumenata o određenoj vrijednosti:

Napravite novu datoteku s imenom Check.sh u svom kućnom imeniku. Dodajte istu bash skriptu kao što je prikazano na donjoj slici. U ovoj skripti imamo varijablu var za spremanje vrijednosti argumenta koju je proslijedio korisnik. Zatim imamo naredbu if, koja će provjeriti da li se vrijednost argumenta podudara ili ne. Ako se vrijednost argumenta podudara s vrijednošću navedenom u zagradama, tada će se izvršiti prva naredba echo. Ako se vrijednost ne podudara, izvršit će se druga naredba echo.

Kada pokrenemo naredbu ljuske skripte, pojavit će se pogreška. Pomoću naredbe chmod možemo ispraviti ovu pogrešku.

Nakon toga izvedite ljusku skriptu za određenu datoteku s nekom vrijednošću argumenta. U našem slučaju, dali smo Aqsu kao vrijednost argumenta, koja je ista kao vrijednost prikazana u zagradama. Tako će bash skripta izvršiti prvu naredbu echo kako je prikazano.

S druge strane, ako navedete različite vrijednosti argumenata u ljusci skripte, ona će prikazati drugu naredbu echo. Ovdje sam dodao Rimsha kao vrijednost argumenta, koja se razlikuje od vrijednosti navedene u if naredbi. Tako će bash skripta izvršiti drugu naredbu echo.

Zaključak:

Nadam se da vam je ovaj vodič dovoljno pomogao da imate snažan uvid u to kako proslijediti argumente zadanim varijablama, proslijediti vrijednost argumenta kao niz u varijablu, dobiti ukupan broj poslanih argumenata, izlaz argumenata po redak, ograničiti argument izlaz pomoću broja indeksa, provjera argumenta određene vrijednosti i još mnogo toga.