Bash-komentosarjat – toiminnot
Bash-skripti on pelkkä tekstitiedosto. Tämä tiedosto sisältää erilaisia komentoja vaiheittaista suorittamista varten. Nämä komennot voidaan kirjoittaa suoraan komentoriville, mutta uudelleenkäytettävyyden kannalta on hyödyllistä tallentaa kaikki tiettyyn tehtävään liittyvät komennot yhteen tiedostoon. Voimme käyttää tätä tiedostoa komentojoukon suorittamiseen yhden tai useamman kerran tarpeidemme mukaisesti.
Tässä artikkelissa aiomme keskustella Bash Scriptingin toimintojen käytöstä.
Ohjelmoinnissa funktio on koodilohko, joka suorittaa joitakin tehtäviä ja jota voidaan kutsua useita kertoja tehtävien suorittamiseksi. Se tarjoaa modulaarisuuden ohjelmaan ja lyhentää koodin pituutta. Yksinkertaisin esimerkki funktion käytöstä Bash-komentosarjassa voidaan antaa seuraavasti:
Esimerkki skriptistä:
#!/bin/bash #It is a function myFunction () { echo Hello World from techcodeview.com } #function call myFunction Lähtö:
Hello World from techcodeview.com
Yllä oleva esimerkki näyttää toiminnon, joka tulostaa jotain, kun sitä kutsutaan. Joten Bash-skriptin toimintojen kirjoittamisen perussyntaksi on
Syntaksi:
# for defining function_name(){ commands ..... } function_name # for calling Tämän lisäksi meillä voi olla myös funktioita, joissa on ohitusargumentteja ja palautusarvoja. Keskustellaan nyt niistä.
Funktiot ohitettavien argumenttien kanssa
Voimme lisätä argumentteja tai parametreja funktioon ja välittää tietoja käyttämällä sitä funktiolle, jotta funktio voi toimia näiden tietojen kanssa. Bash-komentosarjassa voimme käyttää seuraavaa syntaksia funktion kirjoittamiseen väliargumenteilla.
Syötettyjä argumentteja sisältävien funktioiden syntaksi:
#for defining function_name(){ ..... parameter_1 = $1 parameter_2 = $2 . . . parameter_n = $n .... commands ..... } #for calling function_name p1 p2 ....pn Voimme välittää argumentit suoraan kutsuttaessa funktiota ja pääsemme niihin käsiksi $ 1, $ 2 … $ n toiminnon sisällä. Katsotaanpa esimerkkiä, jotta ymmärrämme sen paremmin.
Esimerkki funktioista, joissa on ohitettuja argumentteja:
#!/bin/bash add_two_num(){ local sum=$(($1+$2)) echo sum of $1 and $2 is $sum } add_two_num 2 3 Toimintojen tulos, joissa on ohitettuja argumentteja:
sum of 2 and 3 is 5
Yllä on skripti kahden numeron lisäämiseksi. Tässä olemme esittäneet 2 ja 3 argumentteina. Olemme käyttäneet niitä funktion $1 ja $2 avulla ja laskeneet niiden summan ja tulostaneet sen päätteeseen. Alla on terminaalin kuorikuvaus komentosarjan suorittamisen jälkeen -
Toiminnot palautusarvoilla
Funktio tuottaa palautusarvon ja palauttaa sen kutsutavalle sen suorittamisen jälkeen. Palautusarvoa voidaan käyttää tuotetun tuloksen tai jonkin tilakoodin jakamiseen siitä, onko jokin toiminto suoritettu onnistuneesti vai ei. Bash-komentosarjassa palautusarvo määritetään arvolle $? muuttuja.
Alla esimerkki samasta -
Esimerkki funktioista, joilla on palautusarvot:
#!/bin/bash myfun(){ return 7 } myfun echo The return value is $? Paluuarvoilla varustettujen funktioiden tulos:
The return value is 7
Alla on terminaalin kuorituloste komentosarjan suorittamisen jälkeen -
Muutetaan nyt kahden numeron skriptin aikaisempaa summaa.
Muokattu koodi:
#!/bin/bash myfun(){ return $(($1+$2)) } add_two_num 2 3 echo The sum is $? Muokatun koodin tulos:
The sum is 5
Nyt yllä oleva koodi on esimerkki sekä parametrien että palautusarvon käyttämisestä Bash-komentosarjafunktiossa.
Alla on terminaalin kuorikuvaus komentosarjan suorittamisen jälkeen -
Muuttuva laajuus
Ohjelman tai komentosarjan laajuus on alue, jossa muuttujat ovat olemassa. Jos muuttuja on ilmoitettu funktion sisällä, se on yleensä paikallinen muuttuja ja jos se ilmoitetaan ulkopuolella, se on globaali muuttuja. Bash-komentosarjan tapauksessa tämä käsite on hieman erilainen, tässä mikä tahansa muuttuja, onko se oletuksena kirjoitettu funktion sisään tai sen ulkopuolelle, on globaali muuttuja. Jos haluamme tehdä paikallisen muuttujan, meidän on käytettävä avainsanaa local.
Paras käytäntö on käyttää funktion sisällä aina paikallista muuttujaa tarpeettoman sekaannuksen välttämiseksi.
Alla esimerkki samasta -
Esimerkki muuttujan laajuudesta:
#!/bin/bash var1='Apple' #global variable myfun(){ local var2='Banana' #local variable var3='Cherry' #global variable echo 'The name of first fruit is $var1' echo 'The name of second fruit is $var2' } myfun #calling function echo 'The name of first fruit is $var1' #trying to access local variable echo 'The name of second fruit is $var2' echo 'The name of third fruit is $var3' Muuttujan laajuuden tulos:
The name of first fruit is Apple The name of second fruit is Banana The name of first fruit is Apple The name of second fruit is The name of third fruit is Cherry
Tässä yllä olevassa esimerkissä var2 on paikallinen muuttuja, joten kun käytämme sitä funktiosta, se toimii hyvin, mutta kun yritämme käyttää sitä funktion ulkopuolella, se antaa meille tyhjän tuloksen ulostulossa.
Toisaalta, toisin kuin ohjelmointikielet, vaikka var3 on määritelty funktion sisällä, se toimii silti globaalina muuttujana ja siihen pääsee käsiksi funktion ulkopuolelta. Alla on terminaalin kuorikuvaus komentosarjan suorittamisen jälkeen -
Ohittavat komennot
On mahdollista, että funktiolla on sama nimi kuin komennolla. Se on hyödyllinen, jos haluamme suorittaa komennon tietyillä vaihtoehdoilla tai haluamme siitä mukautetun version.
Alla esimerkki samasta -
Esimerkki ohittavista komennoista:
#!/bin/bash #overriding command echo(){ builtin echo 'The name is : $1' } echo 'Satyajit Ghosh' Ohittavien komentojen tulos:
The name is : Satyajit Ghosh
Tässä esimerkissä olemme ohittaneet kaiku komento. Ennen kuin tulostat annetun merkkijonon, se lisää merkkijonoon vielä muutamalla sanalla ja tulostaa sitten. Alla on terminaalin kuorikuvaus komentosarjan suorittamisen jälkeen -