Napredne funkcije na bazi PostgreSql - I
Sadržaj:
- Izjava o funkciji bash
- Opseg varijabli
- Povratne vrijednosti
- Prolaženje argumenata na Bash funkcijama
- Zaključak
Bash funkcija je u osnovi skup naredbi koje se može nazvati više puta. Svrha funkcije je da vam pomogne da učinite čitljivije skripte kako biste izbjegli pisanje istog koda iznova i iznova.
U usporedbi s većinom programskih jezika, Bash funkcije su ponešto ograničene. U ovom ćemo udžbeniku opisati osnove Bash funkcija i pokazati vam kako ih koristiti u skriptu školjki.
Izjava o funkciji bash
Sintaksa za proglašavanje bash funkcije vrlo je jednostavna. Mogu biti deklarirani u dva različita formata:
-
Prvi format započinje s nazivom funkcije, a slijede ga zagrade. Ovo je željeni i više korišteni format.
function_name () { commands }
Verzija jednog retka:
function_name () { commands; }
Drugi format započinje riječju rezerviranom za
function
a slijedi naziv funkcije.function function_name { commands }
Verzija jednog retka:
function function_name { commands; }
Nekoliko bodova koje je potrebno napomenuti:
- Popis naredbi između kovrčavih zagrada
{}
je tijelo funkcije. Valoviti zagrade koji okružuju funkcijsko tijelo moraju se odvojiti od tijela razmacima ili novim linijama. Definiranje funkcije ga ne izvršava. Da biste pozvali bash funkciju, jednostavno upotrijebite naziv funkcije. Naredbe između kovrčavih zagrada izvršavaju se kad god se funkcija poziva u skriptu ljuske. Definicija funkcije mora se postaviti prije bilo kakvih poziva na funkciju. Kada koristite jednoredne „zbijene“ funkcije, zarez i zarez;
mora slijediti zadnju naredbu u funkciji. Imena svojih funkcija uvijek biste trebali pokušavati opisivati.
Da biste ovo bolje razumjeli, pogledajte sljedeći primjer:
~ / Hello_world.sh
#!/bin/bash hello_world () { echo 'hello, world' } hello_world
Analizirajmo kod po liniju:
- U
3
redu definiramo funkciju tako da joj dodijelimo ime i otvorimo kovrčavu zagradu{
koja označava početak tijela funkcije. Linija4
je tijelo funkcije. Funkcijsko tijelo može sadržavati više naredbi i deklaraciju varijabli. Linija7
hello_world
se zatvara}
, definira kraj funkcijehello_world
7
retku izvršavamo funkciju. Funkciju možete izvršiti onoliko puta koliko trebate.
Ako pokrenete skriptu, ispisat će se
hello, world
.
Opseg varijabli
Globalnim varijablama su varijable kojima se može pristupiti s bilo kojeg mjesta u skripti bez obzira na opseg. U Bashu su sve varijable prema zadanim postavkama definirane kao globalne, čak i ako su deklarirane unutar funkcije.
Lokalne varijable mogu se deklarirati u funkcijskom tijelu s
local
ključnom riječi i mogu se koristiti samo unutar te funkcije. Možete imati lokalne varijable s istim nazivom u različitim funkcijama.
Da biste bolje ilustrirali kako opseg varijabli djeluje u Bashu, razmotrimo primjer:
~ / Variables_scope.sh
#!/bin/bash var1='A' var2='B' my_function () { local var1='C' var2='D' echo "Inside function: var1: $var1, var2: $var2" } echo "Before executing function: var1: $var1, var2: $var2" my_function echo "After executing function: var1: $var1, var2: $var2"
Skripta započinje definiranjem dvije globalne varijable
var1
i
var2
. Zatim je funkcija koja postavlja lokalnu varijablu
var1
i mijenja globalnu varijablu
var2
.
Before executing function: var1: A, var2: B Inside function: var1: C, var2: D After executing function: var1: A, var2: D
Iz gore navedenog možemo zaključiti da:
- Ako postavite lokalnu varijablu unutar funkcionalnog tijela s istim nazivom kao i postojeća globalna varijabla, ona će imati prednost nad globalnom varijablom. Globalne se varijable mogu mijenjati unutar funkcije.
Povratne vrijednosti
Za razliku od funkcija u "stvarnim" programskim jezicima, Bash funkcije ne omogućuju vam vraćanje vrijednosti kad se zove. Kada se bash funkcija dovrši, njezina povratna vrijednost je status posljednje izjave izvršene u funkciji,
0
za uspjeh i ne-nulti decimalni broj u rasponu 1 - 255 za neuspjeh.
Status povratka može se odrediti pomoću ključne riječi
return
, a dodijeljen je varijabli
$?
, Izjava
return
prekida funkciju. Možete to smatrati statusom izlaza funkcije.
#!/bin/bash my_function () { echo "some result" return 55 } my_function echo $?
some result 55
Da bismo iz funkcije zapravo vratili proizvoljnu vrijednost, trebamo koristiti druge metode. Najjednostavnija opcija je dodijeliti rezultat funkcije globalnoj varijabli:
~ / Return_values.sh
#!/bin/bash my_function () { func_result="some result" } my_function echo $func_result
some result
Druga, bolja opcija za vraćanje vrijednosti s funkcije je slanje vrijednosti u
stdout
koristeći echo ili
printf
kao što je prikazano u nastavku:
#!/bin/bash my_function () { local func_result="some result" echo "$func_result" } func_result="$(my_function)" echo $func_result
some result
Umjesto da jednostavno izvršimo funkciju koja će ispisati poruku u stdout, izlaz iz funkcije
func_result
varijabli
func_result
koristeći naredbu
$()
. Varijabla se kasnije može koristiti prema potrebi.
Prolaženje argumenata na Bash funkcijama
Da biste prenijeli bilo koji broj argumenata bash funkciji, jednostavno ih stavite odmah nakon naziva funkcije, odvojenih razmakom. Dobra je praksa dvostruko citirati argumente kako bi se izbjeglo pogrešno uspostavljanje argumenta s razmacima u njemu.
- Prošli parametri su
$1
,$2
,$3
…$n
, što odgovara položaju parametra nakon naziva funkcije. Promjena$0
rezervirana je za ime funkcije. Promjena$#
sadrži broj pozicijskih parametara / argumenata koji su preneseni u function.V varijable$*
i$@
sadrži sve pozicione parametre / argumente proslijeđene u funkciju.- Kada se dvostruko citira,
"$*"
proširuje na jedan niz odvojen razmakom (prvi znak IFS) -"$1 $2 $n"
.Kada se dvostruko citira,"$@"
proširuje na odvojene nizove -"$1" "$2" "$n"
.Kada nisu dvostruko citirani,$*
i$@
su isti.
- Kada se dvostruko citira,
Evo primjera:
~ / Passing_arguments.sh
#!/bin/bash greeting () { echo "Hello $1" } greeting "Joe"
Zaključak
Bash funkcija je blok koda za višekratnu upotrebu dizajniran za izvođenje određene operacije. Jednom definirana, funkcija se može pozvati više puta unutar skripte.
Možda ćete također htjeti pročitati o tome kako pomoću funkcije Bash stvoriti nezaboravnu naredbu prečaca za dužu naredbu.
bash terminalPoslovni softver < Dobavljač softverskih i uslužnih proizvoda Appirio objavljuje Referral Management Solution, skup tehnologija koje korisnicima Salesforcea koriste Facebook za funkcije kao što su virusni marketing i zapošljavanje zaposlenika.

Marketing značajka traži ključne riječi unutar profila prijatelja Facebooka i govori korisnicima koji su prijatelji može biti pravi cilj za različite ponude ili prodajne kampanje.
Gmail dobiva funkcije pretraživanja samodovršetka

Google donosi značajku Pretraživanje prijedloga za Gmail koji omogućuje brzi pristup kontakata, privitaka i pohranjenih razgovora u trenutačnoj poruci.
Google ažuriranja Neke funkcije Aplikacije

Google je ažurirao neke značajke Gmaila i Dokumenata za neke korisnike aplikacije.