logo

Bash funkcije

V tej temi smo prikazali osnove funkcij bash in kako delujejo v skriptni lupini bash.

Funkcije v skriptih bash so odlična možnost za ponovno uporabo kode. Funkcijo Bash lahko definiramo kot nabor ukazov, ki jih lahko večkrat pokličemo znotraj skripta bash. Namen funkcije v bashu je, da vam pomaga narediti skripte bolj berljive in se izogniti pisanju iste kode znova in znova. Prav tako razvijalcem omogoča, da zapleteno in dolgo kodo razbijejo na majhne dele, ki jih je mogoče priklicati, kadar koli je to potrebno. Funkcije lahko kličemo kadarkoli in večkrat, kar nam bo omogočilo ponovno uporabo, optimizacijo in minimiziranje kode.

Sledi nekaj ključnih točk o funkcijah bash:

  • Funkcijo je treba deklarirati v lupinskem skriptu, preden jo lahko uporabimo.
  • Argumente lahko posredujete funkcijam in do njih dostopate znotraj funkcije kot , itd.
  • Lokalne spremenljivke je mogoče dodeliti znotraj funkcije, obseg takšnih spremenljivk pa bo samo ta posebna funkcija.
  • Vgrajene ukaze lupine Bash je mogoče preglasiti s funkcijami.

Sintaksa

Sintakso za deklaracijo funkcije bash je mogoče definirati v dveh formatih:

1. Prva metoda se začne z imenom funkcije, ki mu sledijo oklepaji. To je najbolj priljubljena in pogosto uporabljena metoda:

 function_name () { commands } 

Različico z eno vrstico lahko omenimo kot spodaj:

 function_name () { commands; } 

2. Druga metoda se začne z rezervirano besedo funkcije, ki ji sledi ime funkcije:

sqrt java matematika
 function function_name { commands } 

Različico z eno vrstico lahko omenimo kot spodaj:

 function function_name { commands; } 

V primerjavi z večino programskih jezikov so funkcije Bash nekoliko omejene. Razumejmo koncept s pomočjo nekaj primerov:

Primer: 1. metoda

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

Izhod

 Welcome to Javatpoint. 

Primer: 2. metoda

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

Izhod

 Welcome to Javatpoint. 

Prenos argumentov

Kot večina programskih jezikov lahko tudi posredujemo argumente in obdelamo podatke v funkcijah bash. Podatke lahko vstavimo v funkcijo na podoben način kot podajanje argumentov ukazne vrstice v skript bash.

10 1 milijon

Če želite funkciji bash posredovati poljubno število argumentov, jih moramo vstaviti takoj za imenom funkcije. Med imenom funkcije in argumenti moramo uporabiti presledke. Odlična izbira bo tudi uporaba dvojnih narekovajev okoli argumentov, da preprečite napačno razčlenjevanje argumentov s presledki v njih.

Sledi nekaj ključnih točk o posredovanju argumentov funkcijam bash:

  • Do podanih argumentov se dostopa kot , , ... $n, kar ustreza položaju argumentov za imenom funkcije.
  • Spremenljivka

    V tej temi smo prikazali osnove funkcij bash in kako delujejo v skriptni lupini bash.

    Funkcije v skriptih bash so odlična možnost za ponovno uporabo kode. Funkcijo Bash lahko definiramo kot nabor ukazov, ki jih lahko večkrat pokličemo znotraj skripta bash. Namen funkcije v bashu je, da vam pomaga narediti skripte bolj berljive in se izogniti pisanju iste kode znova in znova. Prav tako razvijalcem omogoča, da zapleteno in dolgo kodo razbijejo na majhne dele, ki jih je mogoče priklicati, kadar koli je to potrebno. Funkcije lahko kličemo kadarkoli in večkrat, kar nam bo omogočilo ponovno uporabo, optimizacijo in minimiziranje kode.

    Sledi nekaj ključnih točk o funkcijah bash:

    • Funkcijo je treba deklarirati v lupinskem skriptu, preden jo lahko uporabimo.
    • Argumente lahko posredujete funkcijam in do njih dostopate znotraj funkcije kot $1, $2 itd.
    • Lokalne spremenljivke je mogoče dodeliti znotraj funkcije, obseg takšnih spremenljivk pa bo samo ta posebna funkcija.
    • Vgrajene ukaze lupine Bash je mogoče preglasiti s funkcijami.

    Sintaksa

    Sintakso za deklaracijo funkcije bash je mogoče definirati v dveh formatih:

    1. Prva metoda se začne z imenom funkcije, ki mu sledijo oklepaji. To je najbolj priljubljena in pogosto uporabljena metoda:

     function_name () { commands } 

    Različico z eno vrstico lahko omenimo kot spodaj:

     function_name () { commands; } 

    2. Druga metoda se začne z rezervirano besedo funkcije, ki ji sledi ime funkcije:

     function function_name { commands } 

    Različico z eno vrstico lahko omenimo kot spodaj:

     function function_name { commands; } 

    V primerjavi z večino programskih jezikov so funkcije Bash nekoliko omejene. Razumejmo koncept s pomočjo nekaj primerov:

    Primer: 1. metoda

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

    Izhod

     Welcome to Javatpoint. 

    Primer: 2. metoda

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

    Izhod

     Welcome to Javatpoint. 

    Prenos argumentov

    Kot večina programskih jezikov lahko tudi posredujemo argumente in obdelamo podatke v funkcijah bash. Podatke lahko vstavimo v funkcijo na podoben način kot podajanje argumentov ukazne vrstice v skript bash.

    Če želite funkciji bash posredovati poljubno število argumentov, jih moramo vstaviti takoj za imenom funkcije. Med imenom funkcije in argumenti moramo uporabiti presledke. Odlična izbira bo tudi uporaba dvojnih narekovajev okoli argumentov, da preprečite napačno razčlenjevanje argumentov s presledki v njih.

    Sledi nekaj ključnih točk o posredovanju argumentov funkcijam bash:

    • Do podanih argumentov se dostopa kot $1, $2, $3 ... $n, kar ustreza položaju argumentov za imenom funkcije.
    • Spremenljivka $0 je rezervirana za ime funkcije.
    • Spremenljivka $# se uporablja za shranjevanje števila pozicijskih argumentov/parametrov, ki so podani funkciji.
    • Spremenljivki $* in $@ se uporabljata za shranjevanje vseh argumentov/parametrov, ki so podani funkciji.
      • Ko se $* uporablja z dvojnimi narekovaji (tj. '$*'), se razširi v en sam niz, ločen s presledkom. Na primer '$1 $2 $n itd'.
      • Ko se $@ uporablja z dvojnimi narekovaji (tj. '$@'), se razširi v ločen niz. Na primer, '$1' '$2' '$n' itd.
      • Če $* in $# nista uporabljena z dvojnimi narekovaji, sta oba enaka.

    Sledi koda, ki ponazarja postopek, kako posredovati argumente funkcijam in dostopati do argumentov znotraj funkcije.

    Bash skript

     #!/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.' 

    Izhod

    Bash funkcije

    V tem skriptu smo dodali vrednosti 'Mi', 'dobrodošli', 'vi', 'on' in 'Javatpoint', potem ko smo poklicali argumente_funkcije. Te vrednosti se posredujejo v argumenti_funkcije kot parametri in shranjeni v lokalni spremenljivki. Vendar za razliko od drugih jezikov tolmač shrani posredovane vrednosti v vnaprej določene spremenljivke, ki so nato poimenovane glede na zaporedje podajanja parametrov.

    na primer

    'mi' beseda je shranjena v spremenljivki 1 .
    'dobrodošli' beseda je shranjena v spremenljivki 2 .
    'ti' beseda je shranjena v spremenljivki 3 .
    'na' beseda je shranjena v spremenljivki 4 .
    'Javatpoint' beseda je shranjena v spremenljivki 5 .

    Obseg spremenljivke

    Globalne spremenljivke so definirane kot spremenljivke, do katerih je mogoče dostopati kjer koli v skriptu, ne glede na obseg. Privzeto so vse spremenljivke definirane kot globalne spremenljivke, tudi če so deklarirane znotraj funkcije. Spremenljivke lahko ustvarimo tudi kot lokalne spremenljivke. Lokalne spremenljivke je mogoče deklarirati znotraj telesa funkcije z ?lokalnim? ključno besedo, ko so prvič dodeljeni. Dostopni so samo znotraj te funkcije. Ustvarimo lahko lokalne spremenljivke z istim imenom v različnih funkcijah. Za dodajanje lokalne spremenljivke lahko uporabimo naslednjo sintakso:

     local var_name= 

    Če želite bolje razumeti, kako obseg spremenljivk deluje v skriptih Bash, si oglejte naslednji primer:

    Bash skript

     #!/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.' 

    Izhod

    Bash funkcije

    Glede na izhod, če nastavimo lokalno spremenljivko znotraj telesa funkcije z enakim imenom kot obstoječa globalna spremenljivka, potem bo imela prednost pred globalno spremenljivko. Globalne spremenljivke je mogoče spreminjati znotraj funkcije.

    Povratne vrednosti

    Večina programskih jezikov ima koncept vračanja vrednosti za funkcije. To pomeni, da mora funkcija poslati podatke nazaj na prvotno klicno lokacijo. Za razliko od funkcij v 'pravih' programskih jezikih funkcija Bash ne zagotavlja podpore za vrnitev vrednosti, ko je klicana. Vendar pa nam omogočajo, da nastavimo status vrnitve, ki je podoben temu, kako se program ali ukaz zapusti s statusom izhoda. Ko se funkcija bash zaključi, je njena vrnjena vrednost status zadnjega izvedenega stavka v funkciji. Za status uspeha vrne 0, za neuspeh pa vrne decimalno število, ki ni nič, v območju 1–255.

    Stanje vrnitve je mogoče označiti s ključno besedo 'return' in je dodeljeno spremenljivki $?. Stavek return zaključi funkcijo in deluje kot izhodni status funkcije.

    na primer razmislite o naslednji kodi:

    Bash skript

     #!/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 $? 

    Izhod

    Bash funkcije

    Druga boljša možnost za vrnitev vrednosti iz funkcije je pošiljanje vrednosti v stdout uporabo odmev oz printf ukazi, kot je prikazano spodaj:

    Bash skript

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

    Izhod

     Welcome to Javatpoint. 

    Preglasitvi ukazov

    Ukaze bash lahko preglasimo tako, da ustvarimo funkcijo z istim imenom kot ukaz, ki ga bomo preglasili. Na primer, če želimo preglasiti ukaz 'echo', potem moramo ustvariti funkcijo z imenom 'echo'.

    Ta koncept preglasitve ukazov bash je lahko koristen v nekaterih scenarijih, na primer, ko želimo uporabiti ukaz s posebnimi možnostmi. Tudi ko nam ni všeč, da celotnemu ukazu večkrat ponudimo možnosti znotraj skripta. V takih primerih lahko preglasimo vgrajeni ukaz bash za ukaz z možnostmi. Zdaj pa poglejmo koncept preglasitve ukazov v skriptni lupini Bash s pomočjo nekaj primerov:

    Primer

    V tem primeru smo preglasili ukaz 'echo' in ukazu 'echo' dodali časovni žig v obliki argumenta.

    Bash skript

     #!/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.' 

    Izhod

    Bash funkcije

    Zaključek

    V tej temi smo predstavili funkcijo Bash. Funkcija Bash se obravnava kot blok kode za večkratno uporabo, razvit za izvedbo določene operacije. Ko je definiran, ga je mogoče večkrat poklicati znotraj skripta.


    je rezervirana za ime funkcije.
  • Spremenljivka $# se uporablja za shranjevanje števila pozicijskih argumentov/parametrov, ki so podani funkciji.
  • Spremenljivki $* in $@ se uporabljata za shranjevanje vseh argumentov/parametrov, ki so podani funkciji.
    • Ko se $* uporablja z dvojnimi narekovaji (tj. '$*'), se razširi v en sam niz, ločen s presledkom. Na primer ' $n itd'.
    • Ko se $@ uporablja z dvojnimi narekovaji (tj. '$@'), se razširi v ločen niz. Na primer, '' '' '$n' itd.
    • Če $* in $# nista uporabljena z dvojnimi narekovaji, sta oba enaka.

Sledi koda, ki ponazarja postopek, kako posredovati argumente funkcijam in dostopati do argumentov znotraj funkcije.

Bash skript

 #!/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.' 

Izhod

Bash funkcije

V tem skriptu smo dodali vrednosti 'Mi', 'dobrodošli', 'vi', 'on' in 'Javatpoint', potem ko smo poklicali argumente_funkcije. Te vrednosti se posredujejo v argumenti_funkcije kot parametri in shranjeni v lokalni spremenljivki. Vendar za razliko od drugih jezikov tolmač shrani posredovane vrednosti v vnaprej določene spremenljivke, ki so nato poimenovane glede na zaporedje podajanja parametrov.

na primer

'mi' beseda je shranjena v spremenljivki 1 .
'dobrodošli' beseda je shranjena v spremenljivki 2 .
'ti' beseda je shranjena v spremenljivki 3 .
'na' beseda je shranjena v spremenljivki 4 .
'Javatpoint' beseda je shranjena v spremenljivki 5 .

Obseg spremenljivke

Globalne spremenljivke so definirane kot spremenljivke, do katerih je mogoče dostopati kjer koli v skriptu, ne glede na obseg. Privzeto so vse spremenljivke definirane kot globalne spremenljivke, tudi če so deklarirane znotraj funkcije. Spremenljivke lahko ustvarimo tudi kot lokalne spremenljivke. Lokalne spremenljivke je mogoče deklarirati znotraj telesa funkcije z ?lokalnim? ključno besedo, ko so prvič dodeljeni. Dostopni so samo znotraj te funkcije. Ustvarimo lahko lokalne spremenljivke z istim imenom v različnih funkcijah. Za dodajanje lokalne spremenljivke lahko uporabimo naslednjo sintakso:

java datum trenutni
 local var_name= 

Če želite bolje razumeti, kako obseg spremenljivk deluje v skriptih Bash, si oglejte naslednji primer:

Bash skript

 #!/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.' 

Izhod

Bash funkcije

Glede na izhod, če nastavimo lokalno spremenljivko znotraj telesa funkcije z enakim imenom kot obstoječa globalna spremenljivka, potem bo imela prednost pred globalno spremenljivko. Globalne spremenljivke je mogoče spreminjati znotraj funkcije.

Povratne vrednosti

Večina programskih jezikov ima koncept vračanja vrednosti za funkcije. To pomeni, da mora funkcija poslati podatke nazaj na prvotno klicno lokacijo. Za razliko od funkcij v 'pravih' programskih jezikih funkcija Bash ne zagotavlja podpore za vrnitev vrednosti, ko je klicana. Vendar pa nam omogočajo, da nastavimo status vrnitve, ki je podoben temu, kako se program ali ukaz zapusti s statusom izhoda. Ko se funkcija bash zaključi, je njena vrnjena vrednost status zadnjega izvedenega stavka v funkciji. Za status uspeha vrne 0, za neuspeh pa vrne decimalno število, ki ni nič, v območju 1–255.

kakšne so dimenzije zaslona mojega računalnika

Stanje vrnitve je mogoče označiti s ključno besedo 'return' in je dodeljeno spremenljivki $?. Stavek return zaključi funkcijo in deluje kot izhodni status funkcije.

na primer razmislite o naslednji kodi:

Bash skript

 #!/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 $? 

Izhod

Bash funkcije

Druga boljša možnost za vrnitev vrednosti iz funkcije je pošiljanje vrednosti v stdout uporabo odmev oz printf ukazi, kot je prikazano spodaj:

kaj je hashset v Javi

Bash skript

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

Izhod

 Welcome to Javatpoint. 

Preglasitvi ukazov

Ukaze bash lahko preglasimo tako, da ustvarimo funkcijo z istim imenom kot ukaz, ki ga bomo preglasili. Na primer, če želimo preglasiti ukaz 'echo', potem moramo ustvariti funkcijo z imenom 'echo'.

Ta koncept preglasitve ukazov bash je lahko koristen v nekaterih scenarijih, na primer, ko želimo uporabiti ukaz s posebnimi možnostmi. Tudi ko nam ni všeč, da celotnemu ukazu večkrat ponudimo možnosti znotraj skripta. V takih primerih lahko preglasimo vgrajeni ukaz bash za ukaz z možnostmi. Zdaj pa poglejmo koncept preglasitve ukazov v skriptni lupini Bash s pomočjo nekaj primerov:

Primer

V tem primeru smo preglasili ukaz 'echo' in ukazu 'echo' dodali časovni žig v obliki argumenta.

Bash skript

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

Izhod

Bash funkcije

Zaključek

V tej temi smo predstavili funkcijo Bash. Funkcija Bash se obravnava kot blok kode za večkratno uporabo, razvit za izvedbo določene operacije. Ko je definiran, ga je mogoče večkrat poklicati znotraj skripta.