Kuinka välitän argumentin basskriptissä?

How Do I Pass Argument Bash Script



Useimmat Linux Mint 20 -käyttäjät joutuvat jumiin, kun he välittävät argumentin bash -komentosarjassa. Voit välittää argumentit mille tahansa bash -komentosarjalle, kun se suoritetaan. On useita yksinkertaisia ​​ja hyödyllisiä tapoja välittää argumentteja bash -skriptissä. Tässä artikkelioppaassa kerromme sinulle erittäin helpoista tavoista välittää ja käyttää argumentteja bash -komentosarjoissasi.

Argumenttien välittäminen oletusmuuttujien avulla:

Luo uusi tiedosto millä tahansa nimellä kosketuskomennolla, esim. File.sh.







$kosketusTiedoston nimi



Avaa tämä äskettäin luotu tiedosto ja lisää siihen bash -komentosarja. Olen lisännyt joitain oletusmuuttujia, esim. 1, 2 ja 3 dollaria. Kaikki argumentit, jotka päätelaitteen kautta viedään, tallennetaan ilmoitettuihin muuttujiin.







Sinun on suoritettava tämä tiedosto käyttämällä komentoa ./ ja joitain argumentteja. Kuten kuvasta näkyy, että kun läpäisen argumentit, tapahtuu virhe: Lupa evätty. Tämä johtuu siitä, että tällä tiedostolla ei ole suoritusoikeuksia.

$./tiedostonimi argumentti1 argumentti2 argumentti

Joten antaaksesi suoritusoikeudet tälle tiedostolle, käytä sudo chmod -komentoa.



$sudo chmod+x tiedostonimi

Suorita nyt tiedosto uudelleen käyttämällä samaa yllä olevaa komentoa. Tällä kertaa olen esittänyt erilaisia ​​argumentteja. Näet, että äskettäin hyväksytyt argumentit on tallennettu oletusmuuttujiin.

Shell -skriptin nimen välittäminen argumenttina:

Nyt käytetään samaa vanhaa tiedostoa file.sh ja muutetaan hieman sen oletusmuuttujia. Sinun on lisättävä muuttuja $ 0 komentosarjaan kuvan osoittamalla tavalla.

Kun käytät samaa ./ shell script -komentoa, komentosarjasi nimi, esim. ./tiedostonimi tallennetaan muuttujaan $ 0 argumenttina.

Argumenttien välittäminen matriisiksi muuttujalle:

Samasta tiedostosta file.sh alkaen sinun on lisättävä ylimääräisiä rivejä vanhaan komentosarjaan. Ilmoita muuttuja nimeltä array. Lisää oletusmuuttuja [email protected], joka tallentaa käyttäjän syöttämät argumentit taulukkona. Nämä argumentit jäsennetään muuttujaryhmäksi. Viimeisellä rivillä näytetään muuttujaryhmän kaikki argumentit lajiteltuna indeksinumeron mukaan.

Suorita ./ shell -komentosarja. Näet, että se näyttää argumentit tai arvot, jotka on tallennettu taulukkona [sähköpostilla suojattuun], joka on jäsennetty muuttuvaan taulukkoon, mutta ei kuori -komentosarjan nimeä toisessa kaikulausekkeessa. Saat seuraavan tuloksen.

$./tiedostonimi argumentti1 argumentti2 argumentti

Käytä samaa tiedostoa samalla komentosarjalla. Poista $ {array [3]} viimeiseltä riviltä niin selvästi kuin kuvassa.

Kun olet suorittanut ./ -komennon, näet samanlaisen tuloksen kuin yllä olevassa esimerkissä ilman muutoksia.

Voit myös saada saman tuloksen korvaamalla bash -skriptin viimeisen rivin yhdellä sanalla. Sinun tarvitsee vain lisätä [email protected] echo -lauseeseen, ja se näyttää tässä muuttujaryhmässä olevat argumentit.

Joten suorittamalla ./ -komento uudelleen, saat samat tulokset.

Tarkista hyväksyttyjen argumenttien kokonaismäärä:

Päinvastoin, jos haluat tietää käyttäjän välittämien argumenttien kokonaismäärän, voit myös tehdä sen. Tätä varten sinun on vain korvattava [sähköposti suojattu] arvolla $# in echo.

Kun suoritat uudelleen ./ -komennon, näet nyt komentosarjalle välitetyt argumentit. Meidän tapauksessamme 3 argumenttia välitetään arvona.

Luo argumenttien rivikohtainen tulos:

Luo uusi tiedosto test.sh kotihakemistoon. Lisää bash -skripti kuvan mukaisesti.

Suorita nyt sama vanha komento eri argumentteilla. Ensinnäkin näet virheen: Lupa evätty.

Sinun on suoritettava chmod -komento tämän tiedoston sudo -oikeuksien myöntämiseksi. Suorita sen jälkeen uudelleen ./ shell script -komento. Ja saat argumenttien rivikohtaisen lajittelun.

Rajoita muuttujaa argumentin indeksinumeron avulla:

Jos haluat rajoittaa muuttujaa käyttämällä sen indeksinumeroa, voit tehdä sen erittäin helposti. Lisää kaarevat hakasulkeet $ -merkin jälkeen ja lisää argumenttihakemiston numero, jonka haluat näyttää muiden argumenttien edessä.

Jos käyttäjien antamat argumentit ovat pienempiä kuin rajamuuttujassa annettu indeksinumero, saat tyhjän argumentin arvon. Esimerkkinä olen antanut 4 argumenttia, mutta olen antanut näytettävän 05 -argumentin arvon. Tässä tilanteessa muuttuja näytetään tyhjänä, koska viides argumentti ei ole läpäissyt.

Mutta kun välität yhtä monta tai enemmän argumentteja komennossa, saat arvon, joka näkyy tuloksessa kuvan osoittamalla tavalla.

Tiettyjen argumenttien tarkistaminen:

Luo kotihakemistoosi uusi tiedosto nimeltä Check.sh. Lisää sama bash -skripti kuin alla olevassa kuvassa. Tässä skriptissä meillä on muuttuja var tallentaa käyttäjän välittämä argumenttiarvo. Sitten meillä on if -lause, joka tarkistaa, vastaako argumentin arvo vai ei. Jos argumentin arvo täsmää suluissa annetun arvon kanssa, ensimmäinen kaikulauseke suoritetaan. Jos arvo ei täsmää, toinen kaikulauseke suoritetaan.

Kun suoritamme komentosarjakomennon, se aiheuttaa virheen. Käyttämällä chmod -komentoa voimme korjata tämän virheen.

Suorita sen jälkeen tietyn tiedoston shell -komentosarja jollakin argumenttiarvolla. Meidän tapauksessamme olemme toimittaneet Aqsa -argumentin arvon, joka on sama kuin suluissa näkyvä arvo. Joten bash -skripti suorittaa ensimmäisen kaiun, kuten kuvassa.

Toisaalta, jos annat eri argumenttiarvot shell -komentosarjassa, se näyttää toisen echo -lauseen. Tässä olen lisännyt Rimshan argumenttiarvoksi, joka eroaa if -lauseessa annetusta arvosta. Joten bash -skripti suorittaa toisen kaiun.

Johtopäätös:

Toivon, että tämä opas on auttanut sinua saamaan riittävän hyvän käsityksen argumenttien siirtämisestä oletusmuuttujille, välittämään argumentin arvon taulukkona muuttujalle, saamaan lähetettyjen argumenttien kokonaismäärän, argumenttien rivikohtaisen tulostuksen, rajoittamaan argumenttia tulos indeksinumerolla, tarkista tietty argumentti ja paljon muuta.