Ako môžem podať argument v bash skripte?

How Do I Pass Argument Bash Script



Väčšina používateľov Linux Mint 20 sa ocitla zaseknutá pri odovzdávaní argumentu v bash skripte. Argumenty môžete odovzdať ľubovoľnému skriptu bash po jeho spustení. Existuje niekoľko jednoduchých a užitočných spôsobov, ako odovzdať argumenty v skriptu bash. V tomto sprievodcovi článkami vám dáme vedieť o niekoľkých veľmi jednoduchých spôsoboch odovzdávania a používania argumentov vo vašich skriptoch bash.

Odovzdávanie argumentov pomocou predvolených premenných:

Vytvorte nový súbor s ľubovoľným názvom pomocou dotykového príkazu, napr. File.sh.







$dotýkať sanázov súboru



Otvorte tento novovytvorený súbor a pridajte do neho skript bash. Pridal som niekoľko predvolených premenných, napr. Následne 1 dolár, 2 doláre a 3 doláre. Akékoľvek argumenty budú odoslané cez terminál budú uložené v uvedených premenných.







Tento súbor musíte spustiť pomocou príkazu ./, za ktorým nasleduje niekoľko argumentov. Ako vidíte na obrázku, keď som prešiel argumentmi, vyskytla sa chyba: Povolenie odmietnuté. Dôvodom je, že tento súbor nemá práva na spustenie.

$./názov súboru argument1 argument2 argument

Ak chcete tomuto súboru udeliť práva na spustenie, použite príkaz sudo chmod.



$sudo chmod+x názov súboru

Teraz znova spustite súbor pomocou rovnakého vyššie uvedeného príkazu. Tentoraz som uviedol rôzne argumenty. Uvidíte, že novo odovzdané argumenty sú uložené v predvolených premenných.

Odovzdanie názvu skriptu Shell ako argumentu:

Teraz pomocou rovnakého starého súboru file.sh s malou zmenou jeho predvolených premenných. Do skriptu musíte pridať premennú 0 dolárov, ako je to znázornené.

Pri spustení rovnakého príkazu ./ shell script názov vášho skriptu shell, napr. ./filename bude ako argument uložený v premennej $ 0.

Odovzdávanie argumentov ako poľa premennej:

Počnúc rovnakým súborom file.sh musíte do starého skriptu pridať niekoľko riadkov navyše. Deklarujte premennú s názvom pole. Pridajte predvolenú premennú [email protected], ktorá uloží argumenty zadané používateľom ako pole. Tieto argumenty budú analyzované na pole premenných. Posledný riadok zobrazí všetky argumenty poľa premenných zoradené podľa indexového čísla.

Spustite skript ./ shell. Uvidíte, že zobrazí argumenty alebo hodnoty uložené ako pole v [chránené e -mailom] analyzované na pole premenných, ale nie názov skriptu shellu v druhom príkaze echo. Budete mať nasledujúci výstup.

$./názov súboru argument1 argument2 argument

Použite rovnaký súbor s rovnakým skriptom. Jednoducho odstráňte pole $ {array [3]} z posledného riadka, ako je to zrejmé z obrázku.

Po vykonaní príkazu ./ uvidíte podobný výstup, aký ste získali vo vyššie uvedenom príklade, bezo zmeny.

Rovnaký výsledok môžete dosiahnuť aj nahradením posledného riadka bash skriptu jedným slovom. Stačí do príkazu echo pridať [email protected] a zobrazí argumenty prítomné v tomto poli premenných.

Ak teda znova spustíte príkaz ./, získate rovnaké výsledky.

Skontrolovať celkový počet predložených argumentov:

Naopak, ak chcete poznať celkový počet argumentov, ktoré používateľ prešiel, môžete to tiež urobiť. Na tento účel stačí nahradiť [email protected] znakom $# v ozvene.

Znovu spustíte príkaz ./. Teraz uvidíte celý obrázok argumentov odovzdaných skriptu. V našom prípade sú ako hodnota odovzdané 3 argumenty.

Vytvoriť výstup argumentov po riadkoch:

Vytvorte nový súbor test.sh v domovskom adresári. Pridajte skript bash podľa obrázka.

Teraz spustite rovnaký starý príkaz s rôznymi argumentmi. Najprv sa zobrazí chyba: Povolenie odmietnuté.

Ak chcete tomuto súboru udeliť oprávnenia sudo, musíte vykonať príkaz chmod. Potom znova spustite príkaz ./ shell script. A dostanete rad argumentov po riadkoch.

Obmedzenie premennej pomocou indexového čísla argumentu:

Ak chcete premennú obmedziť pomocou jej indexového čísla, môžete to urobiť veľmi jednoducho. Za znak $ pridajte zložené zátvorky a pridajte indexové číslo argumentu, ktoré chcete zobraziť pred inými argumentmi.

Ak sú argumenty poskytnuté používateľmi menšie ako číslo indexu uvedené v limitnej premennej, dostanete prázdnu hodnotu argumentu. Ako príklad som uviedol 4 argumenty, ale dal som hodnotu argumentu 05, ktorá sa má zobraziť. V tejto situácii sa premenná zobrazí prázdna, pretože nebol odovzdaný piaty argument.

Keď ale v príkaze zadáte rovnaký alebo väčší počet argumentov, dostanete hodnotu zobrazenú vo výsledku podľa obrázku.

Kontrola špecifických hodnotových argumentov:

Vytvorte nový súbor s názvom Check.sh vo svojom domovskom adresári. Pridajte rovnaký bash skript, ako je znázornené na obrázku nižšie. V tomto skripte máme premennú var na uloženie hodnoty argumentu odovzdanej používateľom. Potom máme príkaz if, ktorý skontroluje, či sa hodnota argumentu zhoduje alebo nie. Ak sa hodnota argumentu zhoduje s hodnotou uvedenou v zátvorkách, vykoná sa prvý príkaz ozveny. Ak sa hodnota nezhoduje, vykoná sa druhý príkaz ozveny.

Keď spustíme príkaz shell script, vyvolá to chybu. Túto chybu môžeme opraviť pomocou príkazu chmod.

Potom spustite skript shell pre konkrétny súbor s určitou hodnotou argumentu. V našom prípade sme poskytli Aqsa ako hodnotu argumentu, ktorá je rovnaká ako hodnota zobrazená v zátvorkách. Skript bash teda vykoná prvý príkaz ozveny, ako je znázornené.

Na druhej strane, ak v skripte shell zadáte rôzne hodnoty argumentov, zobrazí sa druhý príkaz echo. Tu som pridal Rimsha ako hodnotu argumentu, ktorá sa líši od hodnoty uvedenej v príkaze if. Skript bash teda vykoná druhý príkaz ozveny.

Záver:

Dúfam, že vám tento sprievodca dostatočne pomohol k silnému pochopeniu toho, ako odovzdávať argumenty predvoleným premenným, ako odovzdávať hodnotu argumentu ako pole k premennej, získať celkový počet odovzdaných argumentov, rad argumentov po riadkoch, obmedziť argument. výstup pomocou indexového čísla, kontrola argumentu konkrétnej hodnoty a mnoho ďalších.