Uvod u funkcije u Unixu
U ovom ćemo članku naučiti o nekim osnovnim funkcijama u Unixu. Mnogi od nas su već mogli znati koje su to funkcije, ali dopustite mi da ukratko objasnim o tome. Funkcija sadrži skup uputstava koje treba izvesti kodom napisanim unutar razvedenog bloka. Oni su korisni kada imamo određeni zadatak koji program mora obavljati opetovano tijekom redovitih intervala. Očito pisanje istog koda očigledno se ne preporučuje, pa pomoću funkcija možemo kôd lako ponovo koristiti i nazvati ga kad god je potrebno. Pogledajmo sada kako možemo definirati i provesti ove funkcije putem skripta Unix Shell.
Sintaksa funkcija u Unixu
Stvaranje funkcija slijedi osnovni sintaksni kod na sljedeći način. Primjer primjera funkcije.
Kodirati
First()
(
echo “ First Program for defining functions ”;
echo “ Yayyy! “;
)
Ovdje smo napisali dvije izjave odjeka unutar naše Prve funkcije. Za pozivanje funkcije možemo samo nazvati imenom funkcije.
Izlaz
Prolazak parametara u funkciju u Unixu
Uspješno smo napravili jednostavnu funkciju, nazvali je i izvršili potrebne naredbe. Što ako sada moram dodati dva broja kroz unesene vrijednosti korisnika? Dakle, ovdje bismo vidjeli kako možemo pisati funkciju argumentima. Osnovna sintaksa bila bi ista. Primjer parametrizirane funkcije
Kodirati
Second()
(
echo “Enter your name: “;
read name;
echo “Hi $name, have a good day”;
)
Izlaz
To će nas zatražiti da unesemo ime i poželemo ih
Na isti način čak možemo stvoriti datoteku skripte. Napišemo Funkciju dodavanja unutar skripte ljuske i pogledajte kako to funkcionira.
Kodirati
vi add.sh
echo “enter first number: “;
read a;
echo “enter the second number: “;
read b;
sum=$((a+b));
echo “ Result is $sum”;
*********************
Save the file with : wq!
Izlaz
Napomena: Ponekad dok izvršavamo skriptu sh možemo doći do pogreške kao:
Jedino što ovdje moramo učiniti je ažuriranjem dopuštenja datoteka.
Čak možemo izvršiti sh datoteku pomoću naredbe. /add.sh
Na isti način čak i možemo izvršiti funkciju pružanjem argumenata naredbenog retka. Pa, da vidimo kako to možemo učiniti dodavanjem tri broja.
Kodirati
(
number1=$1;
number2=$2;
number3=$3;
sum=$((number1+number2+number3));
echo “Sum is $sum”;
)
Sada možemo svoje brojeve proslijediti kao argumente naredbenog retka i zatim dobiti potreban izlaz.
Što ako ne prenesemo nikakve argumente u funkciju?
I, ako damo samo dva argumenta?
Inače, možemo li prijeći žice?
Čak možemo imati svoj kôd na takav način da može odjeknuti pogreška prilikom slanja nevaljanih argumenata. Ispod ovdje, pogledajmo kako možemo tražiti od korisnika da unese argumente ako nije prošao argument naredbenog retka.
Kodirati
Add()
(
number1=$1;
number2=$2;
if ( $# -ne 2 ); then
echo “ Enter two numbers to add “;
fi
sum=$((number1+number2));
echo “ Sum is : $sum “;
)
Izlaz
Ako ne prenesemo nikakve argumente našoj Funkciji, ona daje odjek tamo gdje smo tražili da damo dva broja naredbenog retka, a zatim damo izlaz zbroja. To se događa, jer nismo rekli Funkciji da se zaustavi ako naiđemo na pogrešku. U drugom slučaju možemo vidjeti kako rezultat daje odgovarajuće iznose bez ikakvog posrednog odjeka. Čak možemo upotrijebiti naredbe za povratak u vraćanju vrijednosti za ove Unix funkcije. Vrijednost u izjavi za povrat pohranjuje se u $?
Izlaz
Možete li pokušati napisati funkciju koja se raspada ako ne prenesemo argumente?
Ugrađene funkcije u Unixu
Nazivanjem možemo razabrati da se unesene funkcije odnose na definiranje funkcije unutar funkcije. Da vidimo kako sada to možemo učiniti. Ovo pišemo unutar skripte za ljuske radi lakšeg razumijevanja.
Kodirati
vi Nested_Function.sh
***** Code Inside the sh Function*******
#!/bin/sh
First()
(
echo “ Inside First Function “;
echo “ Calling the second function below “;
echo “**********”;
Second
echo “**********”;
echo “ After calling Second function “;
)
Second()
(
echo “ Inside Second Function”;
echo “ Done “;
)
First
************************
Save the file with : wq!
Izlaz
U gornjem primjeru smo upravo nazvali drugu funkciju unutar prve. Napišimo sada funkciju samo unutar prve funkcije.
Kodirati
vi Nest_Func1.sh
***** Code Inside the sh Function*******
First_One()
(
echo “ Inside the function First_One”;
echo “ Below is the inner function “;
Second_One()
(
echo “ ********** “;
echo “ Inside Inner function”;
echo “ Completed Second Function”;
echo “ ********** “;
)
echo “Done with second example too”;
)
First_One
Second_one
************************
Save the file with : wq!
Koji proizvod očekujete? Mislite li da će biti prikazani i detalji prve i druge Funkcije?
Izlaz
Jasno možemo vidjeti da Funkcija nije pozvala unutarnju funkciju unutar nje. Pa, u čemu je problem ovdje?
Unutar naše skripte, nazvali smo samo prvu funkciju. Sada pokušajte nazvati i drugu funkciju. Kao što je promatrano, ovdje nećemo moći samo nazvati Funkciju. U gornjem kôdu istakli smo dodani kod.
Izlaz
Primijetite da je odjek koji smo napisali nakon izvršenja Druge funkcije došao pred sebe. Ako pokušamo prvo nazvati drugu funkciju, a zatim prvu?
Izlaz
Jasno možemo razumjeti da dok se glavna / prva funkcija ne nazove unutarnja funkcija se ne poziva. Možete li pokušati sabiranje dva broja pomoću ugniježđenih funkcija? (Jedan za unos korisničkih vrijednosti, a drugi za dodavanje brojeva)
Zaključak
Dakle, na ovaj način možemo definirati Funkcije u Unixu. A jedna od glavnih prednosti u Unixu koju sam pronašao je da se greška u ishodu može lako razumjeti i može pomoći u ispravljanju našeg koda u skladu s tim. Pokušajte izvršiti te funkcije i upotrijebite naredbu return. Sretno učite u Unixu.
Preporučeni članak
Ovo je vodič za funkcije u Unixu. Ovdje ćemo razgovarati o uvodu u Funkcije u Unixu i različitim vrstama funkcija, zajedno sa sintaksom i detaljnim objašnjenjem. Možete i proći naše druge predložene članke da biste saznali više -
- Unix arhitektura
- Unix naredbe
- Upotrebe Unixa
- UNIX pitanja za intervju
- Vodič za Unix operatore