logo

Bash funkcije

U ovoj smo temi demonstrirali osnove bash funkcija i kako one rade u skriptiranju bash ljuske.

Funkcije u bash skriptiranju izvrsna su opcija za ponovnu upotrebu koda. Bash funkcija može se definirati kao skup naredbi koje se mogu pozvati nekoliko puta unutar bash skripte. Svrha funkcije u bashu je pomoći vam da svoje skripte učinite čitljivijima i izbjegnete ponovno i ponovno pisanje istog koda. Također omogućuje razvojnim programerima razbijanje kompliciranog i dugačkog koda na male dijelove koji se mogu pozvati kad god je potrebno. Funkcije se mogu pozivati ​​bilo kada i više puta, što će nam omogućiti ponovnu upotrebu, optimizaciju i minimiziranje koda.

Slijede neke ključne točke o bash funkcijama:

  • Funkcija mora biti deklarirana u skripti ljuske prije nego što je možemo koristiti.
  • Argumenti se mogu proslijediti funkcijama i pristupiti im unutar funkcije kao , itd.
  • Lokalne varijable mogu se dodijeliti unutar funkcije, a opseg takvih varijabli bit će samo ta određena funkcija.
  • Ugrađene naredbe Bash ljuske mogu se nadjačati pomoću funkcija.

Sintaksa

Sintaksa za deklariranje bash funkcije može se definirati u dva formata:

1. Prva metoda počinje s nazivom funkcije, nakon čega slijede zagrade. To je najpoželjnija i najčešće korištena metoda:

 function_name () { commands } 

Verzija s jednim redom može se spomenuti u nastavku:

 function_name () { commands; } 

2. Druga metoda počinje s rezerviranom riječju funkcije, nakon koje slijedi naziv funkcije:

graditelj nizova java
 function function_name { commands } 

Verzija s jednim redom može se spomenuti u nastavku:

 function function_name { commands; } 

U usporedbi s većinom programskih jezika, Bash funkcije su donekle ograničene. Razumimo koncept uz pomoć nekih primjera:

Primjer: 1. metoda

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

Izlaz

 Welcome to Javatpoint. 

Primjer: Metoda 2

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

Izlaz

 Welcome to Javatpoint. 

Donošenje argumenata

Kao i većina programskih jezika, također možemo proslijediti argumente i obraditi podatke u bash funkcijama. Podatke možemo umetnuti u funkciju na sličan način kao prosljeđivanje argumenata naredbenog retka u bash skriptu.

java komentari

Da bismo proslijedili bilo koji broj argumenata funkciji bash, moramo ih umetnuti odmah iza naziva funkcije. Moramo primijeniti razmake između naziva funkcije i argumenata. Također će biti odličan izbor koristiti dvostruke navodnike oko argumenata kako bi se spriječilo pogrešno parciranje argumenata s razmacima u njima.

Slijede neke ključne točke o prosljeđivanju argumenata bash funkcijama:

  • Zadanim argumentima se pristupa kao , , ... $n, što odgovara položaju argumenata iza naziva funkcije.
  • Varijabla

    U ovoj smo temi demonstrirali osnove bash funkcija i kako one rade u skriptiranju bash ljuske.

    Funkcije u bash skriptiranju izvrsna su opcija za ponovnu upotrebu koda. Bash funkcija može se definirati kao skup naredbi koje se mogu pozvati nekoliko puta unutar bash skripte. Svrha funkcije u bashu je pomoći vam da svoje skripte učinite čitljivijima i izbjegnete ponovno i ponovno pisanje istog koda. Također omogućuje razvojnim programerima razbijanje kompliciranog i dugačkog koda na male dijelove koji se mogu pozvati kad god je potrebno. Funkcije se mogu pozivati ​​bilo kada i više puta, što će nam omogućiti ponovnu upotrebu, optimizaciju i minimiziranje koda.

    Slijede neke ključne točke o bash funkcijama:

    • Funkcija mora biti deklarirana u skripti ljuske prije nego što je možemo koristiti.
    • Argumenti se mogu proslijediti funkcijama i pristupiti im unutar funkcije kao $1, $2 itd.
    • Lokalne varijable mogu se dodijeliti unutar funkcije, a opseg takvih varijabli bit će samo ta određena funkcija.
    • Ugrađene naredbe Bash ljuske mogu se nadjačati pomoću funkcija.

    Sintaksa

    Sintaksa za deklariranje bash funkcije može se definirati u dva formata:

    1. Prva metoda počinje s nazivom funkcije, nakon čega slijede zagrade. To je najpoželjnija i najčešće korištena metoda:

     function_name () { commands } 

    Verzija s jednim redom može se spomenuti u nastavku:

     function_name () { commands; } 

    2. Druga metoda počinje s rezerviranom riječju funkcije, nakon koje slijedi naziv funkcije:

     function function_name { commands } 

    Verzija s jednim redom može se spomenuti u nastavku:

     function function_name { commands; } 

    U usporedbi s većinom programskih jezika, Bash funkcije su donekle ograničene. Razumimo koncept uz pomoć nekih primjera:

    Primjer: 1. metoda

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

    Izlaz

     Welcome to Javatpoint. 

    Primjer: Metoda 2

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

    Izlaz

     Welcome to Javatpoint. 

    Donošenje argumenata

    Kao i većina programskih jezika, također možemo proslijediti argumente i obraditi podatke u bash funkcijama. Podatke možemo umetnuti u funkciju na sličan način kao prosljeđivanje argumenata naredbenog retka u bash skriptu.

    Da bismo proslijedili bilo koji broj argumenata funkciji bash, moramo ih umetnuti odmah iza naziva funkcije. Moramo primijeniti razmake između naziva funkcije i argumenata. Također će biti odličan izbor koristiti dvostruke navodnike oko argumenata kako bi se spriječilo pogrešno parciranje argumenata s razmacima u njima.

    Slijede neke ključne točke o prosljeđivanju argumenata bash funkcijama:

    • Zadanim argumentima se pristupa kao $1, $2, $3 ... $n, što odgovara položaju argumenata iza naziva funkcije.
    • Varijabla $0 čuva se rezervirana za naziv funkcije.
    • Varijabla $# koristi se za držanje broja pozicijskih argumenata/parametra danih funkciji.
    • Varijable $* i $@ koriste se za držanje svih argumenata/parametara danih funkciji.
      • Kada se $* koristi s dvostrukim navodnicima (tj. '$*'), proširuje se na jedan niz odvojen razmakom. Na primjer, '$1 $2 $n itd'.
      • Kada se $@ koristi s dvostrukim navodnicima (tj. '$@'), proširuje se na zasebni niz. Na primjer, '$1' '$2' '$n' itd.
      • Kada se $* i $# ne koriste s dvostrukim navodnicima, oboje su isti.

    Slijedi kôd koji ilustrira postupak prosljeđivanja argumenata funkcijama i pristupa argumentima unutar funkcije.

    Bash skripta

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

    Izlaz

    Bash funkcije

    U ovu skriptu dodali smo vrijednosti 'Mi', 'dobrodošli', 'vi', 'on' i 'Javatpoint' nakon što smo pozvali function_arguments. Te se vrijednosti prosljeđuju u argumenti_funkcije kao parametri i pohranjeni u lokalnoj varijabli. Međutim, za razliku od drugih jezika, tumač pohranjuje proslijeđene vrijednosti u unaprijed definirane varijable, koje se zatim imenuju prema nizu proslijeđenih parametara.

    Na primjer,

    'Mi' riječ je pohranjena u varijablu 1 .
    'Dobrodošli' riječ je pohranjena u varijablu 2 .
    'vas' riječ je pohranjena u varijablu 3 .
    'na' riječ je pohranjena u varijablu 4 .
    'Javatpoint' riječ je pohranjena u varijablu 5 .

    Opseg varijable

    Globalne varijable su definirane kao varijable kojima se može pristupiti bilo gdje unutar skripte bez obzira na opseg. Prema zadanim postavkama, sve su varijable definirane kao globalne varijable, čak i ako su deklarirane unutar funkcije. Također možemo stvoriti varijable kao lokalne varijable. Lokalne varijable mogu se deklarirati unutar tijela funkcije s ?local? ključnu riječ kada se dodijele prvi put. Dostupni su samo unutar te funkcije. Možemo kreirati lokalne varijable s istim imenom u različitim funkcijama. Za dodavanje lokalne varijable možemo koristiti sljedeću sintaksu:

     local var_name= 

    Da biste bolje razumjeli kako opseg varijabli funkcionira u Bash skriptiranju, pogledajte sljedeći primjer:

    Bash skripta

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

    Izlaz

    Bash funkcije

    Prema izlazu, ako postavimo lokalnu varijablu unutar tijela funkcije s istim imenom kao postojeća globalna varijabla, ona će imati prednost nad globalnom varijablom. Globalne varijable mogu se mijenjati unutar funkcije.

    Povratne vrijednosti

    Većina programskih jezika ima koncept vraćanja vrijednosti za funkcije. To znači da funkcija mora poslati podatke natrag na izvornu lokaciju poziva. Za razliku od funkcija u 'pravim' programskim jezicima, funkcija Bash ne pruža podršku za vraćanje vrijednosti kada se pozove. Međutim, oni nam omogućuju postavljanje povratnog statusa koji je sličan načinu na koji program ili naredba izlazi sa izlaznim statusom. Kada bash funkcija završi, njezina povratna vrijednost je status posljednje izvršene naredbe u funkciji. Vraća 0 za status uspješnosti i decimalni broj različit od nule u rasponu 1-255 za neuspjeh.

    Status povrata može se naznačiti korištenjem ključne riječi 'return', a dodijeljen je varijabli $?. Naredba return prekida funkciju i radi kao izlazni status funkcije.

    Na primjer, razmotrite sljedeći kod:

    Bash skripta

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

    Izlaz

    Bash funkcije

    Još jedna bolja opcija za vraćanje vrijednosti iz funkcije je slanje vrijednosti na stdout korištenjem jeka ili printf naredbe, kao što je prikazano u nastavku:

    Bash skripta

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

    Izlaz

     Welcome to Javatpoint. 

    Nadjačavanje naredbi

    Imamo opciju nadjačati bash naredbe stvaranjem funkcije s istim imenom kao naredba koju ćemo nadjačati. Na primjer, ako želimo poništiti naredbu 'echo', tada moramo stvoriti funkciju s imenom 'echo'.

    Ovaj koncept nadjačavanja bash naredbi može biti od pomoći u nekim scenarijima, primjerice kada želimo koristiti naredbu s određenim opcijama. Također, kada nam se ne sviđa dati cijelu naredbu s opcijama nekoliko puta unutar skripte. U takvim slučajevima možemo nadjačati ugrađenu naredbu bash za naredbu s opcijama. Razumimo sada koncept nadjačavanja naredbi u Bash Shell skriptiranju uz pomoć nekih primjera:

    Primjer

    U ovom smo primjeru nadjačali naredbu 'echo' i dodali vremensku oznaku u obliku argumenta naredbi 'echo'.

    Bash skripta

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

    Izlaz

    Bash funkcije

    Zaključak

    U ovoj smo temi pokazali Bash funkciju. Funkcija Bash smatra se blokom višekratnog koda koji je razvijen za izvođenje određene operacije. Nakon što se definira, može se pozvati nekoliko puta unutar skripte.


    čuva se rezervirana za naziv funkcije.
  • Varijabla $# koristi se za držanje broja pozicijskih argumenata/parametra danih funkciji.
  • Varijable $* i $@ koriste se za držanje svih argumenata/parametara danih funkciji.
    • Kada se $* koristi s dvostrukim navodnicima (tj. '$*'), proširuje se na jedan niz odvojen razmakom. Na primjer, ' $n itd'.
    • Kada se $@ koristi s dvostrukim navodnicima (tj. '$@'), proširuje se na zasebni niz. Na primjer, '' '' '$n' itd.
    • Kada se $* i $# ne koriste s dvostrukim navodnicima, oboje su isti.

Slijedi kôd koji ilustrira postupak prosljeđivanja argumenata funkcijama i pristupa argumentima unutar funkcije.

Bash skripta

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

Izlaz

Bash funkcije

U ovu skriptu dodali smo vrijednosti 'Mi', 'dobrodošli', 'vi', 'on' i 'Javatpoint' nakon što smo pozvali function_arguments. Te se vrijednosti prosljeđuju u argumenti_funkcije kao parametri i pohranjeni u lokalnoj varijabli. Međutim, za razliku od drugih jezika, tumač pohranjuje proslijeđene vrijednosti u unaprijed definirane varijable, koje se zatim imenuju prema nizu proslijeđenih parametara.

Na primjer,

'Mi' riječ je pohranjena u varijablu 1 .
'Dobrodošli' riječ je pohranjena u varijablu 2 .
'vas' riječ je pohranjena u varijablu 3 .
'na' riječ je pohranjena u varijablu 4 .
'Javatpoint' riječ je pohranjena u varijablu 5 .

broj palindroma

Opseg varijable

Globalne varijable su definirane kao varijable kojima se može pristupiti bilo gdje unutar skripte bez obzira na opseg. Prema zadanim postavkama, sve su varijable definirane kao globalne varijable, čak i ako su deklarirane unutar funkcije. Također možemo stvoriti varijable kao lokalne varijable. Lokalne varijable mogu se deklarirati unutar tijela funkcije s ?local? ključnu riječ kada se dodijele prvi put. Dostupni su samo unutar te funkcije. Možemo kreirati lokalne varijable s istim imenom u različitim funkcijama. Za dodavanje lokalne varijable možemo koristiti sljedeću sintaksu:

 local var_name= 

Da biste bolje razumjeli kako opseg varijabli funkcionira u Bash skriptiranju, pogledajte sljedeći primjer:

Bash skripta

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

Izlaz

Bash funkcije

Prema izlazu, ako postavimo lokalnu varijablu unutar tijela funkcije s istim imenom kao postojeća globalna varijabla, ona će imati prednost nad globalnom varijablom. Globalne varijable mogu se mijenjati unutar funkcije.

Povratne vrijednosti

Većina programskih jezika ima koncept vraćanja vrijednosti za funkcije. To znači da funkcija mora poslati podatke natrag na izvornu lokaciju poziva. Za razliku od funkcija u 'pravim' programskim jezicima, funkcija Bash ne pruža podršku za vraćanje vrijednosti kada se pozove. Međutim, oni nam omogućuju postavljanje povratnog statusa koji je sličan načinu na koji program ili naredba izlazi sa izlaznim statusom. Kada bash funkcija završi, njezina povratna vrijednost je status posljednje izvršene naredbe u funkciji. Vraća 0 za status uspješnosti i decimalni broj različit od nule u rasponu 1-255 za neuspjeh.

Status povrata može se naznačiti korištenjem ključne riječi 'return', a dodijeljen je varijabli $?. Naredba return prekida funkciju i radi kao izlazni status funkcije.

Na primjer, razmotrite sljedeći kod:

linux besplatni ipconfig

Bash skripta

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

Izlaz

Bash funkcije

Još jedna bolja opcija za vraćanje vrijednosti iz funkcije je slanje vrijednosti na stdout korištenjem jeka ili printf naredbe, kao što je prikazano u nastavku:

java liste

Bash skripta

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

Izlaz

 Welcome to Javatpoint. 

Nadjačavanje naredbi

Imamo opciju nadjačati bash naredbe stvaranjem funkcije s istim imenom kao naredba koju ćemo nadjačati. Na primjer, ako želimo poništiti naredbu 'echo', tada moramo stvoriti funkciju s imenom 'echo'.

Ovaj koncept nadjačavanja bash naredbi može biti od pomoći u nekim scenarijima, primjerice kada želimo koristiti naredbu s određenim opcijama. Također, kada nam se ne sviđa dati cijelu naredbu s opcijama nekoliko puta unutar skripte. U takvim slučajevima možemo nadjačati ugrađenu naredbu bash za naredbu s opcijama. Razumimo sada koncept nadjačavanja naredbi u Bash Shell skriptiranju uz pomoć nekih primjera:

Primjer

U ovom smo primjeru nadjačali naredbu 'echo' i dodali vremensku oznaku u obliku argumenta naredbi 'echo'.

Bash skripta

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

Izlaz

Bash funkcije

Zaključak

U ovoj smo temi pokazali Bash funkciju. Funkcija Bash smatra se blokom višekratnog koda koji je razvijen za izvođenje određene operacije. Nakon što se definira, može se pozvati nekoliko puta unutar skripte.