Introducere în funcții în Unix
În acest articol, vom afla despre câteva funcții de bază în Unix. Mulți dintre noi am știut deja care sunt funcțiile, dar permiteți-mi să prezint o scurtă introducere despre aceasta. O funcție conține un set de instrucțiuni care trebuie executate de un cod scris în interiorul unui bloc indentat. Acestea sunt utile când avem o anumită sarcină pe care un program trebuie să o îndeplinească în mod repetat în intervale regulate de timp. Scrierea aceluiași cod de fiecare dată nu este, în mod evident, recomandat, astfel încât folosind funcții putem reutiliza cu ușurință codul și să-l apelăm ori de câte ori este necesar. Să vedem acum cum putem defini și implementa aceste funcții prin scripturile Unix Shell.
Sintaxa funcțiilor în Unix
Crearea funcțiilor urmează codul de sintaxă de bază, după cum urmează. Exemplu de exemplu a unei funcții.
Cod
First()
(
echo “ First Program for defining functions ”;
echo “ Yayyy! “;
)
Aici, am scris două declarații ecografice în cadrul primei noastre funcții. Pentru apelarea funcției, putem apela doar după numele funcției.
producție
Trecerea parametrilor pentru a funcționa în Unix
Am realizat cu succes o funcție simplă, am numit-o și am executat comenzile necesare. Acum, dacă ar trebui să adaug două numere prin valorile introduse de utilizator? Așadar, aici am vedea cum putem scrie o funcție cu argumente. Sintaxa de bază ar fi aceeași. Exemplu de funcție parametrizată
Cod
Second()
(
echo “Enter your name: “;
read name;
echo “Hi $name, have a good day”;
)
producție
Ne va solicita să introducem un nume și să le dorim
În același mod, putem crea chiar și un fișier script. Să scriem o funcție de adăugare în interiorul unui script shell și să vedem cum funcționează.
Cod
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!
producție
Notă: Uneori, în timpul executării scriptului sh, putem primi eroarea ca:
Singurul lucru care trebuie făcut aici este actualizarea permisiunilor pentru fișiere.
Putem chiar să executăm fișierul sh folosind comanda de la. /add.sh
În același mod, putem executa chiar și o Funcție oferind argumente din linia de comandă. Deci, să vedem cum putem face acest lucru prin adăugarea a trei numere.
Cod
(
number1=$1;
number2=$2;
number3=$3;
sum=$((number1+number2+number3));
echo “Sum is $sum”;
)
Acum putem trece numerele noastre ca argumente din linia de comandă și apoi obținem rezultatul necesar.
Ce se întâmplă dacă nu transmitem niciun argument la Funcție?
Și, dacă dăm doar două argumente?
Altfel, putem trece șiruri?
Putem chiar să avem codul nostru astfel încât să poată răspunde o eroare atunci când sunt transmise argumente nevalide. Mai jos aici, să vedem cum putem cere utilizatorului să introducă argumente dacă nu au trecut argumente din linia de comandă.
Cod
Add()
(
number1=$1;
number2=$2;
if ( $# -ne 2 ); then
echo “ Enter two numbers to add “;
fi
sum=$((number1+number2));
echo “ Sum is : $sum “;
)
producție
Dacă nu transmitem niciun argument funcției noastre, ne dă ecoul în care am solicitat să dăm două numere de linie de comandă și apoi să dăm ieșirea sumei. Face acest lucru, întrucât nu am spus funcției să se oprească dacă întâlnim eroarea. În cel de-al doilea caz, putem vedea ieșirea care dă suma corespunzătoare fără niciun ecou intermediar. Putem folosi chiar și comenzile returnare pentru a returna valorile pentru aceste funcții Unix. Valoarea din extrasul de retur este stocată în $?
producție
Ca exercițiu, puteți încerca să scrieți o funcție care se declanșează dacă nu transmitem argumentele?
Funcțiile cuibărite în Unix
Numind putem descoperi că funcțiile cuibare sunt despre definirea unei funcții în interiorul unei funcții. Să vedem cum putem face asta acum. Scriem acest lucru în interiorul unui script shell pentru o mai bună înțelegere.
Cod
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!
producție
În exemplul de mai sus, am numit doar a doua funcție din prima. Să scriem acum o funcție doar în prima funcție.
Cod
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!
Acum, ce ieșire așteptați? Credeți că vor fi afișate atât detaliile primei și celei de-a doua funcții?
producție
Putem vedea clar că funcția nu a apelat la funcția interioară din interiorul ei. Deci, care este problema aici?
În cadrul scriptului nostru, am numit doar prima funcție. Încercați apelând și la a doua funcție. După cum s-a observat, aici nu vom putea numi Funcția singură. În codul de mai sus, am evidențiat codul adăugat.
producție
Observați că ecoul pe care l-am scris după executarea celei de-a doua funcții a venit înainte. Acum, dacă încercăm să apelăm prima a doua funcție, urmată de prima?
producție
Putem înțelege clar că până când funcția principală / prima nu este numită funcția interioară nu se numește. Ca exercițiu, puteți încerca adăugarea a două numere folosind funcții imbricate? (Una pentru introducerea valorilor utilizatorului, iar altele pentru adăugarea numerelor)
Concluzie
Așadar, așa putem defini funcțiile din Unix. Și un avantaj major în Unix am găsit a fost eroarea la ieșire poate fi ușor înțeleasă și poate ajuta la rectificarea codului nostru în consecință. Încercați să executați acele funcții și folosiți și comanda returnare. Învățați fericit în Unix.
Articol recomandat
Acesta a fost un ghid pentru Funcții în Unix. Aici discutăm o introducere în Funcții în Unix și diferite tipuri de funcții, împreună cu sintaxa și explicații de detaliu. Puteți parcurge și alte articole sugerate pentru a afla mai multe -
- Unix Architecture
- Comenzi Unix
- Utilizări Unix
- Întrebări de interviu UNIX
- Ghid pentru operatorii Unix