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
čuva se rezervirana za naziv 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 $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
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
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
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
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.
- 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
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
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
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
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.