Kaip perduoti argumentą „Bash Script“?

How Do I Pass Argument Bash Script



Dauguma „Linux Mint 20“ vartotojų atsiduria užstrigę pateikdami argumentą „bash“ scenarijuje. Argumentus galite perduoti bet kuriam „bash“ scenarijui, kai jis vykdomas. Yra keli paprasti ir naudingi būdai perduoti argumentus „bash“ scenarijuje. Šiame straipsnio vadove mes jums pranešime apie keletą labai paprastų būdų perduoti ir naudoti argumentus savo „bash“ scenarijuose.

Argumentų pateikimas naudojant numatytuosius kintamuosius:

Sukurkite naują failą bet kokiu pavadinimu naudodami lietimo komandą, pvz., File.sh.







$liestifailo pavadinimas



Atidarykite šį naujai sukurtą failą ir pridėkite prie jo bash scenarijų. Pridėjau keletą numatytųjų kintamųjų, pvz. 1 USD, 2 USD ir 3 USD atitinkamai. Visi argumentai, kurie bus perduoti per terminalą, bus saugomi nurodytuose kintamuosiuose.







Turite paleisti šį failą naudodami komandą ./ ir keletą argumentų. Kaip matote paveikslėlyje, kai perduodu argumentus, įvyksta klaida: leidimas atmestas. Taip yra todėl, kad šis failas neturi vykdymo teisių.

$./failo pavadinimas argumentas1 argumentas2 argumentas

Taigi, norėdami suteikti šio failo vykdymo teises, naudokite komandą sudo chmod.



$sudo chmod+x failo pavadinimas

Dabar vėl paleiskite failą naudodami tą pačią aukščiau esančią komandą. Šį kartą pateikiau įvairių argumentų. Pamatysite, kad naujai priimti argumentai yra saugomi numatytuosiuose kintamuosiuose.

„Shell“ scenarijaus pavadinimas pateikiamas kaip argumentas:

Dabar, naudojant tą patį seną failą file.sh, šiek tiek pakeitus numatytuosius kintamuosius. Į scenarijų turite pridėti kintamąjį $ 0, kaip parodyta.

Vykdant tą pačią komandą ./ shell script, jūsų apvalkalo scenarijaus pavadinimas, pvz. ./failo pavadinimas bus išsaugotas kintamajame $ 0 kaip argumentas.

Argumentų perdavimas kintamajam:

Pradėdami nuo to paties failo file.sh, senajame scenarijuje turite pridėti keletą papildomų eilučių. Paskelbkite kintamąjį, pavadintą masyvu. Pridėkite numatytąjį kintamąjį [apsaugotas el. Paštas], kuris išsaugos vartotojo įvestus argumentus kaip masyvą. Šie argumentai bus išanalizuoti į kintamąjį masyvą. Paskutinėje eilutėje bus rodomi visi kintamojo masyvo argumentai, surūšiuoti pagal indekso numerį.

Vykdykite ./ apvalkalo scenarijų. Pamatysite, kad jame bus rodomi argumentai ar reikšmės, saugomos kaip masyvas [el. Pašto apsauga], išanalizuotas į kintamąjį masyvą, bet ne apvalkalo scenarijaus pavadinimas antrajame echo teiginyje. Turėsite tokią išvestį.

$./failo pavadinimas argumentas1 argumentas2 argumentas

Naudokite tą patį failą su tuo pačiu scenarijumi. Tiesiog pašalinkite $ {array [3]} iš paskutinės eilutės, kaip parodyta paveikslėlyje.

Vykdę komandą ./ pamatysite panašią išvestį, kaip ir aukščiau pateiktame pavyzdyje, be jokių pakeitimų.

Tą patį rezultatą taip pat galite gauti pakeisdami paskutinę „bash“ scenarijaus eilutę vienu žodžiu. Jūs tiesiog turite pridėti [apsaugotas el. Paštas] echo sakinyje, ir jame bus pateikti argumentai, esantys šiame kintamajame masyve.

Taigi dar kartą paleisdami komandą ./ gausite tuos pačius rezultatus.

Patikrinkite bendrą priimtų argumentų skaičių:

Priešingai, jei norite sužinoti bendrą vartotojo pateiktų argumentų skaičių, taip pat galite tai padaryti. Šiuo tikslu jūs tiesiog turite pakeisti [el. Pašto apsaugą] $ $ in echo.

Vėl vykdydami komandą ./, dabar pamatysite visą scenarijui perduotų argumentų skaičių. Mūsų atveju 3 argumentai perduodami kaip vertė.

Sukurti argumentų eilutę po eilutės:

Sukurkite naują failą test.sh namų kataloge. Pridėkite „bash“ scenarijų, kaip parodyta.

Dabar paleiskite tą pačią seną komandą su skirtingais argumentais. Pirma, pamatysite klaidą: Leidimas atmestas.

Norėdami suteikti šiam failui sudo privilegijas, turite vykdyti komandą chmod. Po to dar kartą paleiskite komandą ./ shell. Ir jūs gausite eilutėje po eilės surūšiuotą argumentų išvestį.

Apriboti kintamąjį per argumento indekso numerį:

Jei norite apriboti kintamąjį naudodami jo indekso numerį, tai galite padaryti labai lengvai. Po $ ženklo pridėkite garbanotus skliaustus ir pridėkite argumentų indekso numerį, kurį norite rodyti prieš kitus argumentus.

Jei vartotojų pateikti argumentai yra mažesni už indekso numerį, nurodytą ribiniame kintamajame, gausite tuščią argumento vertę. Kaip pavyzdį pateikiau 4 argumentus, tačiau pateikiau 05 argumento vertę. Esant tokiai situacijai, kintamasis bus rodomas tuščias, nes penktasis argumentas nebuvo perduotas.

Bet kai komandoje pateiksite vienodą ar daugiau argumentų, rezultatas bus rodomas rezultate, kaip parodyta.

Tikrinami konkrečios vertės argumentai:

Sukurkite naują failą pavadinimu Check.sh savo namų kataloge. Pridėkite tą patį „bash“ scenarijų, kaip parodyta žemiau esančiame paveikslėlyje. Šiame scenarijuje mes turime kintamąjį var, kad išsaugotume vartotojo perduotą argumento vertę. Tada turime teiginį if, kuris patikrins, ar argumento reikšmė sutampa, ar ne. Jei argumento vertė sutampa su skliausteliuose pateikta reikšme, bus įvykdytas pirmasis aido teiginys. Jei reikšmė nesutampa, bus vykdomas antrasis aido teiginys.

Kai vykdysime „shell script“ komandą, ji sukels klaidą. Naudodami komandą chmod, galime ištaisyti šią klaidą.

Po to vykdykite konkretaus failo apvalkalo scenarijų su tam tikra argumento reikšme. Mūsų atveju kaip argumento reikšmę pateikėme „Aqsa“, kuri yra tokia pati kaip skliausteliuose nurodyta vertė. Taigi „bash“ scenarijus vykdys pirmąjį aido teiginį, kaip parodyta.

Kita vertus, jei apvalkalo scenarijuje pateikiate skirtingas argumentų reikšmes, jis parodys kitą echo teiginį. Čia aš pridėjau Rimsha kaip argumento vertę, kuri skiriasi nuo teiginio if reikšmės. Taigi „bash“ scenarijus vykdys antrąjį aido teiginį.

Išvada:

Tikiuosi, kad šis vadovas jums padėjo pakankamai gerai suprasti, kaip perkelti argumentus į numatytuosius kintamuosius, perduoti argumento vertę kaip masyvą kintamajam, gauti bendrą perduotų argumentų skaičių, eilutės po eilutės argumentų išvestį, apriboti argumentą išvestį naudojant indekso numerį, tikrinant konkrečios vertės argumentą ir dar daugiau.