logo

Bash-toiminnot

Tässä aiheessa olemme osoittaneet bash-funktioiden perusteet ja niiden toiminnan bash-komentotulkkikomentosarjassa.

Bash-komentosarjan toiminnot ovat loistava vaihtoehto koodin uudelleenkäyttöön. Bash-funktio voidaan määritellä joukkona komentoja, joita voidaan kutsua useita kertoja bash-skriptin sisällä. Bashin funktion tarkoitus on auttaa sinua tekemään skripteistäsi luettavampia ja välttämään saman koodin kirjoittamista uudestaan ​​​​ja uudestaan. Sen avulla kehittäjät voivat myös murtaa monimutkaisen ja pitkän koodin pieniksi osiin, joita voidaan kutsua aina tarvittaessa. Toimintoja voidaan kutsua milloin tahansa ja toistuvasti, mikä mahdollistaa koodin uudelleenkäytön, optimoinnin ja minimoimisen.

Seuraavassa on joitain avainkohtia bash-funktioista:

  • Funktio on ilmoitettava komentotulkkikomentosarjassa ennen kuin voimme käyttää sitä.
  • Argumentit voidaan välittää funktioille ja käyttää funktion sisällä muodossa , jne.
  • Paikallisia muuttujia voidaan määrittää funktion sisällä, ja tällaisten muuttujien laajuus on vain kyseinen funktio.
  • Bash shellin sisäänrakennetut komennot voidaan ohittaa funktioiden avulla.

Syntaksi

Bash-funktion ilmoittamisen syntaksi voidaan määrittää kahdessa muodossa:

1. Ensimmäinen menetelmä alkaa funktion nimellä, jota seuraa sulkeita. Se on suosituin ja yleisimmin käytetty menetelmä:

 function_name () { commands } 

Yksirivinen versio voidaan mainita seuraavasti:

 function_name () { commands; } 

2. Toinen menetelmä alkaa funktion varatulla sanalla, jota seuraa funktion nimi:

jokaiselle konekirjoitukselle
 function function_name { commands } 

Yksirivinen versio voidaan mainita seuraavasti:

 function function_name { commands; } 

Verrattuna useimpiin ohjelmointikieliin, Bash-toiminnot ovat jonkin verran rajallisia. Ymmärrämme konseptin joidenkin esimerkkien avulla:

Esimerkki: Menetelmä 1

 #!/bin/bash JTP () { echo 'Welcome to Javatpoint.' } JTP 

Lähtö

 Welcome to Javatpoint. 

Esimerkki: Menetelmä 2

 #!/bin/bash function JTP { echo 'Welcome to Javatpoint.' } JTP 

Lähtö

 Welcome to Javatpoint. 

Argumenttien ohittaminen

Kuten useimmat ohjelmointikielet, voimme myös välittää argumentit ja käsitellä tietoja bash-funktioissa. Voimme lisätä tiedot funktioon samalla tavalla kuin komentoriviargumenttien välittäminen bash-skriptille.

vesileima sanassa

Jos haluat välittää minkä tahansa määrän argumentteja bash-funktiolle, meidän on lisättävä ne heti funktion nimen jälkeen. Meidän on käytettävä välilyöntejä funktion nimen ja argumenttien väliin. On myös hyvä valinta käyttää kaksoislainausmerkkejä argumenttien ympärillä, jotta vältetään argumenttien väärin jäsentäminen välilyönneillä.

Seuraavassa on joitain avainkohtia argumenttien välittämisestä bash-funktioille:

  • Annettuja argumentteja käytetään muodossa , , ... $n, mikä vastaa argumenttien sijaintia funktion nimen jälkeen.
  • Tässä aiheessa olemme osoittaneet bash-funktioiden perusteet ja niiden toiminnan bash-komentotulkkikomentosarjassa.

    Bash-komentosarjan toiminnot ovat loistava vaihtoehto koodin uudelleenkäyttöön. Bash-funktio voidaan määritellä joukkona komentoja, joita voidaan kutsua useita kertoja bash-skriptin sisällä. Bashin funktion tarkoitus on auttaa sinua tekemään skripteistäsi luettavampia ja välttämään saman koodin kirjoittamista uudestaan ​​​​ja uudestaan. Sen avulla kehittäjät voivat myös murtaa monimutkaisen ja pitkän koodin pieniksi osiin, joita voidaan kutsua aina tarvittaessa. Toimintoja voidaan kutsua milloin tahansa ja toistuvasti, mikä mahdollistaa koodin uudelleenkäytön, optimoinnin ja minimoimisen.

    Seuraavassa on joitain avainkohtia bash-funktioista:

    • Funktio on ilmoitettava komentotulkkikomentosarjassa ennen kuin voimme käyttää sitä.
    • Argumentit voidaan välittää funktioille ja käyttää funktion sisällä muodossa $1, $2 jne.
    • Paikallisia muuttujia voidaan määrittää funktion sisällä, ja tällaisten muuttujien laajuus on vain kyseinen funktio.
    • Bash shellin sisäänrakennetut komennot voidaan ohittaa funktioiden avulla.

    Syntaksi

    Bash-funktion ilmoittamisen syntaksi voidaan määrittää kahdessa muodossa:

    1. Ensimmäinen menetelmä alkaa funktion nimellä, jota seuraa sulkeita. Se on suosituin ja yleisimmin käytetty menetelmä:

     function_name () { commands } 

    Yksirivinen versio voidaan mainita seuraavasti:

     function_name () { commands; } 

    2. Toinen menetelmä alkaa funktion varatulla sanalla, jota seuraa funktion nimi:

     function function_name { commands } 

    Yksirivinen versio voidaan mainita seuraavasti:

     function function_name { commands; } 

    Verrattuna useimpiin ohjelmointikieliin, Bash-toiminnot ovat jonkin verran rajallisia. Ymmärrämme konseptin joidenkin esimerkkien avulla:

    Esimerkki: Menetelmä 1

     #!/bin/bash JTP () { echo 'Welcome to Javatpoint.' } JTP 

    Lähtö

     Welcome to Javatpoint. 

    Esimerkki: Menetelmä 2

     #!/bin/bash function JTP { echo 'Welcome to Javatpoint.' } JTP 

    Lähtö

     Welcome to Javatpoint. 

    Argumenttien ohittaminen

    Kuten useimmat ohjelmointikielet, voimme myös välittää argumentit ja käsitellä tietoja bash-funktioissa. Voimme lisätä tiedot funktioon samalla tavalla kuin komentoriviargumenttien välittäminen bash-skriptille.

    Jos haluat välittää minkä tahansa määrän argumentteja bash-funktiolle, meidän on lisättävä ne heti funktion nimen jälkeen. Meidän on käytettävä välilyöntejä funktion nimen ja argumenttien väliin. On myös hyvä valinta käyttää kaksoislainausmerkkejä argumenttien ympärillä, jotta vältetään argumenttien väärin jäsentäminen välilyönneillä.

    Seuraavassa on joitain avainkohtia argumenttien välittämisestä bash-funktioille:

    • Annettuja argumentteja käytetään muodossa $1, $2, $3 ... $n, mikä vastaa argumenttien sijaintia funktion nimen jälkeen.
    • $0-muuttuja pidetään varattuna funktion nimelle.
    • $#-muuttujaa käytetään pitämään funktiolle annettujen sijaintiargumenttien/parametrien lukumäärä.
    • Muuttujia $* ja $@ käytetään pitämään kaikki funktiolle annetut argumentit/parametrit.
      • Kun $*:ta käytetään lainausmerkeillä (eli '$*' ), se laajenee yhdeksi merkkijonoksi, joka erotetaan välilyönnillä. Esimerkiksi '$1 $2 $n jne'.
      • Kun $@ käytetään lainausmerkeillä (eli '$@' ), se laajenee erilliseksi merkkijonoksi. Esimerkiksi '$1' '$2' '$n' jne.
      • Kun $* ja $# eivät ole käytössä lainausmerkeissä, ne molemmat ovat samoja.

    Seuraavassa on koodi, joka havainnollistaa menettelyä argumenttien välittämiseksi funktioille ja funktion sisällä olevien argumenttien käyttämiseen.

    Bash-skripti

     #!/bin/bash #Script to pass and access arguments function_arguments() { echo $1 echo $2 echo $3 echo $4 echo $5 } #Calling function_arguments function_arguments 'We''welcome''you''on''Javatpoint.' 

    Lähtö

    Bash-toiminnot

    Tähän skriptiin olemme lisänneet arvot 'We', 'welcome', 'you', 'on' ja 'Javatpoint', kun olemme kutsuneet function_arguments. Nämä arvot välitetään function_arguments parametreina ja tallennettu paikalliseen muuttujaan. Toisin kuin muut kielet, tulkki tallentaa välitetyt arvot ennalta määritettyihin muuttujiin, jotka sitten nimetään välitysparametrien järjestyksen mukaan.

    Esimerkiksi,

    'Me' sana tallennetaan muuttujaan 1 .
    'Tervetuloa' sana tallennetaan muuttujaan 2 .
    'sinä' sana tallennetaan muuttujaan 3 .
    'päällä' sana tallennetaan muuttujaan 4 .
    'Javatpoint' sana tallennetaan muuttujaan 5 .

    Muuttuva laajuus

    Yleiset muuttujat määritellään muuttujiksi, joita voidaan käyttää missä tahansa komentosarjassa laajuudesta riippumatta. Oletuksena kaikki muuttujat määritellään globaaleiksi muuttujiksi, vaikka ne olisi ilmoitettu funktion sisällä. Voimme myös luoda muuttujia paikalliseksi muuttujaksi. Paikalliset muuttujat voidaan ilmoittaa funktion rungossa ?local? avainsana, kun ne määritetään ensimmäistä kertaa. Ne ovat käytettävissä vain tämän toiminnon sisällä. Voimme luoda paikallisia muuttujia samalla nimellä eri funktioissa. Paikallisen muuttujan lisäämiseksi voimme käyttää seuraavaa syntaksia:

     local var_name= 

    Jos haluat ymmärtää paremmin, kuinka muuttujien laajuus toimii Bash-komentosarjassa, katso seuraava esimerkki:

    Bash-skripti

     #!/bin/bash v1='A' v2='B' my_var () { local v1='C' v2='D' echo 'Inside Function' echo 'v1 is $v1.' echo 'v2 is $v2.' } echo 'Before Executing the Function' echo 'v1 is $v1.' echo 'v2 is $v2.' my_var echo 'After Executing the Function' echo 'v1 is $v1.' echo 'v2 is $v2.' 

    Lähtö

    Bash-toiminnot

    Lähtökohtaisesti, jos asetamme funktion runkoon paikallisen muuttujan, jolla on sama nimi kuin olemassa olevalla globaalilla muuttujalla, sillä on etusija globaaliin muuttujaan nähden. Globaalimuuttujia voidaan muokata funktion sisällä.

    Palautusarvot

    Useimmissa ohjelmointikielissä on ajatus palauttaa arvo funktioille. Tämä tarkoittaa, että toiminnon on lähetettävä tiedot takaisin alkuperäiseen kutsuvaan paikkaan. Toisin kuin 'oikeiden' ohjelmointikielien funktiot, Bash-funktio ei tarjoa tukea arvon palauttamiseen, kun sitä kutsutaan. Niiden avulla voimme kuitenkin asettaa palautustilan, joka on samanlainen kuin ohjelma tai komento poistuu poistumistilassa. Kun bash-funktio on valmis, sen palautusarvo on funktion viimeksi suoritetun käskyn tila. Se palauttaa nollan onnistumisen tilalle ja nollasta poikkeavan desimaaliluvun välillä 1-255 epäonnistumisen osalta.

    Palautustila voidaan ilmaista käyttämällä 'return'-avainsanaa, ja se on määritetty muuttujalle $?. Return-käsky lopettaa funktion ja toimii funktion poistumistilana.

    Esimerkiksi, harkitse seuraavaa koodia:

    Bash-skripti

     #!/bin/bash #Setting up a return status for a function print_it () { echo Hello $1 return 5 } print_it User print_it Reader echo The previous function returned a value of $? 

    Lähtö

    Bash-toiminnot

    Toinen parempi vaihtoehto arvon palauttamiseksi funktiosta on lähettää arvo kohteeseen stdout käyttämällä kaiku tai printf komennot alla olevan kuvan mukaisesti:

    Bash-skripti

     #!/bin/bash print_it () { local my_greet='Welcome to Javatpoint.' echo '$my_greet' } my_greet='$(print_it)' echo $my_greet 

    Lähtö

     Welcome to Javatpoint. 

    Ohittavat komennot

    Meillä on mahdollisuus ohittaa bash-komennot luomalla funktio, jolla on sama nimi kuin komentolla, jonka aiomme ohittaa. Jos esimerkiksi haluamme ohittaa 'echo' -komennon, meidän on luotava funktio, jonka nimi on 'echo'.

    Tämä bash-komentojen ohituskonsepti voi olla hyödyllinen joissakin tilanteissa, kuten silloin, kun haluamme käyttää komentoa tietyillä vaihtoehdoilla. Myös silloin, kun emme halua tarjota koko komentoa vaihtoehtoineen useita kertoja komentosarjassa. Tällaisissa tapauksissa voimme ohittaa sisäänrakennetun bash-komennon komennon vaihtoehdoilla. Ymmärretään nyt Bash Shell Scriptingin komentojen ohittaminen joidenkin esimerkkien avulla:

    Esimerkki

    Tässä esimerkissä olemme ohittaneet 'echo'-komennon ja lisänneet aikaleiman argumentin muodossa 'echo'-komentoon.

    Bash-skripti

     #!/bin/bash #Script to override command using function echo () { builtin echo -n `date +'[%m-%d %H:%M:%S]'` ': ' builtin echo $1 } echo 'Welcome to Javatpoint.' 

    Lähtö

    Bash-toiminnot

    Johtopäätös

    Tässä aiheessa esitimme Bash Functionin. Bash-toimintoa pidetään uudelleenkäytettävän koodin lohkona, joka on kehitetty suorittamaan tietty toiminto. Kun se on määritetty, sitä voidaan kutsua useita kertoja skriptin sisällä.


    -muuttuja pidetään varattuna funktion nimelle.
  • $#-muuttujaa käytetään pitämään funktiolle annettujen sijaintiargumenttien/parametrien lukumäärä.
  • Muuttujia $* ja $@ käytetään pitämään kaikki funktiolle annetut argumentit/parametrit.
    • Kun $*:ta käytetään lainausmerkeillä (eli '$*' ), se laajenee yhdeksi merkkijonoksi, joka erotetaan välilyönnillä. Esimerkiksi ' $n jne'.
    • Kun $@ käytetään lainausmerkeillä (eli '$@' ), se laajenee erilliseksi merkkijonoksi. Esimerkiksi '' '' '$n' jne.
    • Kun $* ja $# eivät ole käytössä lainausmerkeissä, ne molemmat ovat samoja.

Seuraavassa on koodi, joka havainnollistaa menettelyä argumenttien välittämiseksi funktioille ja funktion sisällä olevien argumenttien käyttämiseen.

Bash-skripti

 #!/bin/bash #Script to pass and access arguments function_arguments() { echo  echo  echo  echo  echo  } #Calling function_arguments function_arguments 'We''welcome''you''on''Javatpoint.' 

Lähtö

101 miljoonaa
Bash-toiminnot

Tähän skriptiin olemme lisänneet arvot 'We', 'welcome', 'you', 'on' ja 'Javatpoint', kun olemme kutsuneet function_arguments. Nämä arvot välitetään function_arguments parametreina ja tallennettu paikalliseen muuttujaan. Toisin kuin muut kielet, tulkki tallentaa välitetyt arvot ennalta määritettyihin muuttujiin, jotka sitten nimetään välitysparametrien järjestyksen mukaan.

Esimerkiksi,

'Me' sana tallennetaan muuttujaan 1 .
'Tervetuloa' sana tallennetaan muuttujaan 2 .
'sinä' sana tallennetaan muuttujaan 3 .
'päällä' sana tallennetaan muuttujaan 4 .
'Javatpoint' sana tallennetaan muuttujaan 5 .

Muuttuva laajuus

Yleiset muuttujat määritellään muuttujiksi, joita voidaan käyttää missä tahansa komentosarjassa laajuudesta riippumatta. Oletuksena kaikki muuttujat määritellään globaaleiksi muuttujiksi, vaikka ne olisi ilmoitettu funktion sisällä. Voimme myös luoda muuttujia paikalliseksi muuttujaksi. Paikalliset muuttujat voidaan ilmoittaa funktion rungossa ?local? avainsana, kun ne määritetään ensimmäistä kertaa. Ne ovat käytettävissä vain tämän toiminnon sisällä. Voimme luoda paikallisia muuttujia samalla nimellä eri funktioissa. Paikallisen muuttujan lisäämiseksi voimme käyttää seuraavaa syntaksia:

 local var_name= 

Jos haluat ymmärtää paremmin, kuinka muuttujien laajuus toimii Bash-komentosarjassa, katso seuraava esimerkki:

Bash-skripti

 #!/bin/bash v1='A' v2='B' my_var () { local v1='C' v2='D' echo 'Inside Function' echo 'v1 is $v1.' echo 'v2 is $v2.' } echo 'Before Executing the Function' echo 'v1 is $v1.' echo 'v2 is $v2.' my_var echo 'After Executing the Function' echo 'v1 is $v1.' echo 'v2 is $v2.' 

Lähtö

Bash-toiminnot

Lähtökohtaisesti, jos asetamme funktion runkoon paikallisen muuttujan, jolla on sama nimi kuin olemassa olevalla globaalilla muuttujalla, sillä on etusija globaaliin muuttujaan nähden. Globaalimuuttujia voidaan muokata funktion sisällä.

Palautusarvot

Useimmissa ohjelmointikielissä on ajatus palauttaa arvo funktioille. Tämä tarkoittaa, että toiminnon on lähetettävä tiedot takaisin alkuperäiseen kutsuvaan paikkaan. Toisin kuin 'oikeiden' ohjelmointikielien funktiot, Bash-funktio ei tarjoa tukea arvon palauttamiseen, kun sitä kutsutaan. Niiden avulla voimme kuitenkin asettaa palautustilan, joka on samanlainen kuin ohjelma tai komento poistuu poistumistilassa. Kun bash-funktio on valmis, sen palautusarvo on funktion viimeksi suoritetun käskyn tila. Se palauttaa nollan onnistumisen tilalle ja nollasta poikkeavan desimaaliluvun välillä 1-255 epäonnistumisen osalta.

Palautustila voidaan ilmaista käyttämällä 'return'-avainsanaa, ja se on määritetty muuttujalle $?. Return-käsky lopettaa funktion ja toimii funktion poistumistilana.

kevään saappaiden arkkitehtuuri

Esimerkiksi, harkitse seuraavaa koodia:

Bash-skripti

 #!/bin/bash #Setting up a return status for a function print_it () { echo Hello  return 5 } print_it User print_it Reader echo The previous function returned a value of $? 

Lähtö

Bash-toiminnot

Toinen parempi vaihtoehto arvon palauttamiseksi funktiosta on lähettää arvo kohteeseen stdout käyttämällä kaiku tai printf komennot alla olevan kuvan mukaisesti:

java listat

Bash-skripti

 #!/bin/bash print_it () { local my_greet='Welcome to Javatpoint.' echo '$my_greet' } my_greet='$(print_it)' echo $my_greet 

Lähtö

 Welcome to Javatpoint. 

Ohittavat komennot

Meillä on mahdollisuus ohittaa bash-komennot luomalla funktio, jolla on sama nimi kuin komentolla, jonka aiomme ohittaa. Jos esimerkiksi haluamme ohittaa 'echo' -komennon, meidän on luotava funktio, jonka nimi on 'echo'.

Tämä bash-komentojen ohituskonsepti voi olla hyödyllinen joissakin tilanteissa, kuten silloin, kun haluamme käyttää komentoa tietyillä vaihtoehdoilla. Myös silloin, kun emme halua tarjota koko komentoa vaihtoehtoineen useita kertoja komentosarjassa. Tällaisissa tapauksissa voimme ohittaa sisäänrakennetun bash-komennon komennon vaihtoehdoilla. Ymmärretään nyt Bash Shell Scriptingin komentojen ohittaminen joidenkin esimerkkien avulla:

Esimerkki

Tässä esimerkissä olemme ohittaneet 'echo'-komennon ja lisänneet aikaleiman argumentin muodossa 'echo'-komentoon.

Bash-skripti

 #!/bin/bash #Script to override command using function echo () { builtin echo -n `date +'[%m-%d %H:%M:%S]'` ': ' builtin echo  } echo 'Welcome to Javatpoint.' 

Lähtö

Bash-toiminnot

Johtopäätös

Tässä aiheessa esitimme Bash Functionin. Bash-toimintoa pidetään uudelleenkäytettävän koodin lohkona, joka on kehitetty suorittamaan tietty toiminto. Kun se on määritetty, sitä voidaan kutsua useita kertoja skriptin sisällä.