Functies in Unix - Verschillende soorten functies in Unix met Syntax

Inhoudsopgave:

Anonim

Inleiding tot functies in Unix

In dit artikel zullen we leren over enkele basisfuncties in Unix. Velen van ons hebben misschien al geweten wat functies zijn, maar laat me er een korte inleiding over geven. Een functie bevat een reeks instructies die moeten worden uitgevoerd door een code die in een ingesprongen blok is geschreven. Deze zijn nuttig wanneer we een bepaalde taak hebben die een programma herhaaldelijk moet doen gedurende regelmatige tijdsintervallen. Het is uiteraard niet aan te bevelen elke keer dezelfde code te schrijven, dus met behulp van functies kunnen we de code eenvoudig hergebruiken en aanroepen wanneer nodig. Laten we nu kijken hoe we deze functies kunnen definiëren en implementeren via Unix Shell-scripts.

Syntaxis van functies in Unix

Het maken van functies volgt de basissyntaxiscode als volgt. Voorbeeldvoorbeeld van een functie.

Code

First()
(
echo “ First Program for defining functions ”;
echo “ Yayyy! “;
)

Hier hebben we twee echo-verklaringen in onze eerste functie geschreven. Om de functie aan te roepen, kunnen we alleen de functienaam noemen.

uitgang

Parameters doorgeven aan functie in Unix

We hebben met succes een eenvoudige functie gemaakt, deze genoemd en de opdrachten uitgevoerd die we nodig hadden. Wat nu als ik twee getallen moet toevoegen via door de gebruiker ingevoerde waarden? Dus hier zouden we zien hoe we een functie met argumenten kunnen schrijven. De basissyntaxis zou hetzelfde zijn. Voorbeeld van geparametriseerde functie

Code

Second()
(
echo “Enter your name: “;
read name;
echo “Hi $name, have a good day”;
)

uitgang

Het zal ons vragen om een ​​naam in te voeren en ze te wensen

Op dezelfde manier kunnen we zelfs een scriptbestand maken. Laten we een toevoeging Functie in een shellscript schrijven en kijken hoe het werkt.

Code

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!

uitgang

Opmerking: Soms kunnen we tijdens het uitvoeren van het sh-script de foutmelding krijgen als:

Het enige dat u hier hoeft te doen, is de bestandsmachtigingen bijwerken.

We kunnen zelfs het sh-bestand uitvoeren met de opdracht van. /add.sh

Op dezelfde manier kunnen we zelfs een functie uitvoeren door opdrachtregelargumenten op te geven. Laten we dus kijken hoe we dit kunnen doen door de toevoeging van drie getallen.

Code

(
number1=$1;
number2=$2;
number3=$3;
sum=$((number1+number2+number3));
echo “Sum is $sum”;
)

Nu kunnen we onze getallen doorgeven als opdrachtregelargumenten en vervolgens onze vereiste uitvoer verkrijgen.

Wat als we geen argumenten aan de functie doorgeven?

En als we slechts twee argumenten geven?

Anders, kunnen we snaren?

We kunnen onze code zelfs zo hebben dat deze een fout kan wegnemen als ongeldige argumenten worden doorgegeven. Laten we hieronder kijken hoe we de gebruiker kunnen vragen om argumenten in te voeren als er geen opdrachtregelargumenten zijn doorgegeven.

Code

Add()
(
number1=$1;
number2=$2;
if ( $# -ne 2 ); then
echo “ Enter two numbers to add “;
fi
sum=$((number1+number2));
echo “ Sum is : $sum “;
)

uitgang

Als we geen argumenten doorgeven aan onze functie, geeft dit onze echo waar we hebben gevraagd om twee opdrachtregelnummers te geven en vervolgens de uitvoer van som te geven. Dit gebeurt omdat we de functie niet hebben opgedragen te stoppen als we de fout tegenkomen. In het tweede geval kunnen we zien dat de uitvoer de som correct geeft zonder tussenliggende echo. We kunnen zelfs retouropdrachten gebruiken bij het retourneren van waarden voor deze Unix-functies. De waarde in het retouroverzicht wordt opgeslagen in $?

uitgang

Kun je als oefening proberen een functie te schrijven die uitvalt als we de argumenten niet doorgeven?

Geneste functies in Unix

Door te benoemen kunnen we erachter komen dat geneste functies gaan over het definiëren van een functie binnen een functie. Laten we kijken hoe we dat nu kunnen doen. We schrijven dit in een shellscript voor een beter begrip.

Code

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!

uitgang

In het bovenstaande voorbeeld hebben we zojuist de tweede functie in de eerste genoemd. Laten we nu alleen een functie in de eerste functie schrijven.

Code

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!

Welke output verwacht u nu? Denkt u dat zowel de details van de eerste als de tweede functie worden weergegeven?

uitgang

We kunnen duidelijk zien dat de functie niet de innerlijke functie erin heeft genoemd. Wat is hier het probleem?

In ons script hebben we alleen de eerste functie genoemd. Probeer het nu ook door de tweede functie aan te roepen. Zoals opgemerkt, kunnen we de functie hier niet zelf aanroepen. In de bovenstaande code hebben we de toegevoegde code gemarkeerd.

uitgang

Merk op dat de echo die we hebben geschreven na de uitvoering van de Tweede Functie voor zichzelf is gekomen. Als we nu eerst de tweede functie proberen aan te roepen, gevolgd door de eerste?

uitgang

We kunnen duidelijk begrijpen dat totdat de hoofd / eerste functie wordt genoemd, de innerlijke functie niet wordt genoemd. Kunt u als oefening proberen twee getallen toe te voegen met behulp van geneste functies? (Eén voor het invoeren van gebruikerswaarden en andere om de nummers toe te voegen)

Conclusie

Dus dit is hoe we functies in Unix kunnen definiëren. En een groot voordeel in Unix dat ik ontdekte, was dat de fout in de uitvoer gemakkelijk te begrijpen is en kan helpen onze code dienovereenkomstig te corrigeren. Probeer die functies uit te voeren en gebruik ook de opdracht return. Veel plezier met het leren in Unix.

Aanbevolen artikel

Dit is een gids voor Functies in Unix. Hier bespreken we een inleiding tot Functies in Unix en verschillende soorten functies samen met syntaxis en gedetailleerde uitleg. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie -

  1. Unix-architectuur
  2. Unix-opdrachten
  3. Gebruik van Unix
  4. UNIX-interviewvragen
  5. Handleiding voor Unix-operators