logo

Linuxin Bash-komentosarjan argumenttien ja parametrien välittäminen ja jäsentäminen

Argumenttien jäsentäminen ja välittäminen bash-skripteiksi/shell-skripteiksi on melko samanlaista kuin tapa, jolla välitämme argumentteja Bash-skriptien sisällä oleville funktioille. Näemme varsinaisen prosessin, jossa argumentit siirretään skriptille, ja tarkastellaan myös tapaa käyttää näitä argumentteja skriptin sisällä.

Argumenttien välittäminen ennen juoksua

Voimme välittää parametreja heti komentosarjan nimen jälkeen, kun suoritamme bash-tulkkikomentoa. Voit siirtää parametreja tai argumentteja tiedostoon. Vain komento komentosarjan suorittamiseen normaalisti lisäämällä parametrien arvot suoraan komentosarjaan. Jokainen parametri on välilyönnillä erotettu arvo, joka välitetään komentotulkkikomentosarjalle.



bash scriptname.sh>

Yllä oleva komento vain suorittaa komentosarjan ilman parametrien välittämistä.

Alla oleva komento välittää argumentit skriptille.

bash scriptname.sh parameter1 parameter2 parameter3 nth-parameter>

Suoritetaan bash-skriptiä, jossa parametrit välitetään



Yllä oleva kuvakaappaus näyttää skriptille välitetyt parametrit, kuinka teemme sen, minkä selitämme seuraavassa osiossa. Mutta juuri nyt voimme nähdä, että olemme syöttäneet parametrit skriptin ulkopuolelta bash-ympäristömuuttujien avulla. Voit jopa käyttää merkkijonoja ja muita tietotyyppejä, mutta varo välilyöntejä. Tyhjä välilyönti tekee muuttujasta erillisen parametrin. Joten varsinkin kielten kohdalla ole varovainen ympäröimällä ne tiukasti lainausmerkeillä.

string.valueof java

Komentoriviargumenttien havaitseminen

Nyt näemme, kuinka pääsemme käsiksi näihin parametreihin komentosarjan sisällä. Käytämme välitettyjen parametrien lukumäärää järjestyksessä, eli ensimmäisille välitetyille parametreille jäsennämme (pääsemme) parametrin käyttämällä muuttujana . Ensimmäinen parametri tallennetaan muuttujaan . Lisäksi voit määrittää tämän muuttujan mille tahansa muulle haluamasi käyttäjän määrittämälle muuttujalle. Voit käyttää n:nnettä parametria parametrilla $n päästäksesi kyseiseen parametriin. Tässä muuttujan nimi alkaa 1:llä, koska tiedostonimi/komentosarjanimi on 0. parametri. Jos sinulla on enemmän kuin 9 parametria, muista käyttää { } luvun ympärillä, koska ilman sulkuja, bash näkee vain arvon ja jättää pois 0:n, joten käytä ja niin edelleen yksinkertaisesti sijaan.

#!/bin/bash echo '1st parameter =  ' echo '2nd Parameter =  '>

Yllä oleva skripti voi käyttää parametreja komentoriviltä / kuoresta käyttämällä sijaintiparametreja, jotka ovat 1, 2, 3 ja niin edelleen.



kajal aggarwal

Argumenttien käyttäminen skriptistä.

Kuten näet, olemme käyttäneet parametria {} päästäksemme parametrimuuttujien numeroihin 10:stä eteenpäin. Skriptiä voidaan käyttää silmukoille ja while-silmukaille parametrien iterointiin, mutta käsittelemme sitä muissa osissa.

Määritä annetut argumentit Bash-muuttujalle

Voimme myös määrittää sen muille mukautetuille muuttujille tehdäksemme skriptistä dynaamisemman ja muokataksemme sitä tarpeiden mukaan. Vaikka yllä oleva komentosarja tulostaa vain kaksi parametria ajettaessa, voit varmasti käyttää useampia parametreja käyttämällä muuttujaa parametrien numerojärjestyksenä. Skripti voi käyttää sijaintimuuttujia komentoriviltä ja käyttää niitä vaadituissa paikoissa komentosarjan sisällä.

#!/bin/bash a= b= p=$(($a*$b)) echo 'The product of $a and $b = $p'>

Määritä annetut argumentit Bash-muuttujalle

Yllä oleva komentosarja käyttää skriptiin siirrettyjä sijaintiparametreja eli ja ja tallentaa käyttäjän määrittämät muuttujat päästäkseen niihin myöhemmin käsiksi ja muokatakseen niitä vastaavasti. Voimme myös käyttää enemmän parametreja iteratiivisilla menetelmillä, kuten tulemme näkemään tulevissa osissa.

Meillä on myös mahdollisuus tarkistaa, onko -z- tai -n-lippujen avulla välitetty NULL- tai tyhjiä parametreja. Tästä voimme tarkistaa, onko parametrit hyväksytty vai ei.

#!/bin/bash if [[ -z  ]]; then echo 'No parameter passed.' else echo 'Parameter passed = ' fi>

Tarkistetaan, onko sijaintiparametreja välitetty vai ei.

Tämän skriptin avulla voimme havaita, onko sijaintiparametreja välitetty vai ei välitetty mitään. Lippu -z tarkistaa, onko BASHissa NULL-muuttujia tai alustamattomia muuttujia. Lippu -z palauttaa tosi, jos välitetty muuttuja on NULL tai alustamaton. Tästä syystä voimme käyttää If-else-peruslauseita havaitaksemme välitetyt parametrit.

Voimme myös käyttää -n-lippua, joka palauttaa tosi, jos mitään parametreja ei välitetä, joten meidän on käytettävä ! tilan kääntämiseksi.

Kuten esimerkiksi seuraavasti:

java silmukat
#!/bin/bash if [[ ! -n  ]]; then echo 'No parameter passed.' else echo 'Parameter passed = ' fi>

Tämä skripti antaa myös saman tulosteen, mutta käytämme -n -lippua -z:n sijaan.

tostring menetelmä

Useiden argumenttien lukeminen For- tai While-silmukalla

Voimme käyttää @-muuttujaa päästäksemme kaikkiin parametreihin, jotka on välitetty skriptille komentorivin kautta. Se on erityinen muuttuja, joka pitää sisällään muuttujien joukon BASHissa. Tässä tapauksessa käytämme sitä yksinään, joten se sisältää joukkoon välitettyjä sijaintiparametreja. Voimme käyttää sitä iteroitaessamme silmukoilla tai while-silmukalla välitettyjä parametreja.

#!/bin/bash for i in $@ do echo -e '$i
' done>

Käyttämällä silmukoita ja @-muuttujaa parametrien käyttämiseen taulukkoelementteinä.

Käytimme aluepohjaista for-silmukkaa iteroimaan, kunnes @-taulukossa on elementtejä. Me yksinkertaisesti iteroimme taulukon yli ja tulostamme elementin. Voimme yksinkertaisesti määrittää sen, muokata arvoja ja tehdä tarvittavat muutokset parametreihin ja argumentteihin saavuttaaksemme halutun tuloksen komentosarjasta.

TAI

Voimme myös tulostaa argumentit käyttämällä while-silmukkaa ja BASHin ympäristömuuttujia.

#!/bin/bash i=$(($#-1)) while [ $i -ge 0 ]; do echo ${BASH_ARGV[$i]} i=$((i-1)) done>

Käytetään while-silmukkaa toistaaksesi ohitetut parametrit.

Käytämme muuttujaa ' # ' koska se pitää sisällään siirrettyjen parametrien määrän. Alustamme parametrien määrän ja poistamme yhden, koska aiomme käyttää taulukkoa sen toistamiseen. Joten, kuten tavallista, taulukon indeksi alkaa nollasta. Koska tämä matriisi alustetaan viimeisestä ohitetusta elementistä tai parametrista, meidän on pienennettävä laskuria 0:aan, jotta jokainen parametri tulostetaan niiden välitysjärjestyksessä. Käytämme yksinkertaisesti BASH_ARGV-taulukkoa päästäksemme parametreihin ja tulostaaksemme sen arvon. Lisäksi joka iteraatiossa pienennämme i- iteraattorin tai laskurin arvoa yhdellä käyttämällä aritmeettisia kaksoissulkumerkkejä. Tästä yksinkertaisesti tulostamme kaikki skriptille välitetyt parametrit käyttämällä while-silmukkaa, kuten tulosteen kuvakaappauksesta näkyy.

Java-haastattelun ydinkysymykset

Lukeminen parametrien nimillä

Getoptien käyttäminen argumenttien ja parametrien jäsentämiseen

Voimme käyttää getopts-ohjelmaa/-komentoa jäsentämään komentorivillä/päätteellä olevalle skriptille välitetyt argumentit silmukoiden ja käännöskirjainten avulla.

#!/bin/bash while getopts n:c: option do case '${option}' in n)nation=${OPTARG};; c)code=${OPTARG};; esac done echo 'Nation : $nation' echo 'code : $code'>

Getoptien käyttäminen argumenttien ja parametrien jäsentämiseen

Getoptsia käyttämällä voimme määrittää sijaintiargumentit/parametrit komentoriviltä suoraan bash-muuttujiin. Näin voimme hallita parametreja hienosti ja systemaattisesti. Yllä olevassa skriptissä olemme käyttäneet kahta argumenttia bash-muuttujien tallentamiseen käyttämällä getopts-syntaksia, kun taas silmukoita ja kirjainkoot-lauseita.

Kaikkien argumenttien arvojen tulostaminen

Voimme tulostaa komentosarjalle välitetyt argumentit yksinkertaisella tehokkaalla muuttujalla @, joka tallentaa kaikki välitetyt parametrit.

#!/bin/bash echo 'The arguments passed in are : $@'>

Kaikkien argumenttien arvojen tulostaminen

Pääsy hyväksyttyjen parametrien määrään

Voimme myös käyttää muuttujaa '#' päästäksemme komentoriviltä välitettyjen parametrien määrään. #-muuttuja sisältää periaatteessa skriptiin välitettävien parametrien/argumenttien määrän.

#!/bin/bash echo 'The number of arguments passed in are : $#'>

Pääsy hyväksyttyjen parametrien määrään

Seuraavat olivat bash-skriptin muuttujien välittämisen ja jäsentämisen prosessi ja määrittely. Muuttujien siirtämisen ja muuttamisen logiikka on käyttäjän käsissä. Tämä oli vain osoitus argumenttien siirtämisestä ja jäsentämisestä komentoriviltä komentosarjaan, jotta ne dynaamisevat.