Funkcije u Unixu - Različite vrste funkcija u Unixu sa sintaksom

Sadržaj:

Anonim

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 -

  1. Unix arhitektura
  2. Unix naredbe
  3. Upotrebe Unixa
  4. UNIX pitanja za intervju
  5. Vodič za Unix operatore