Funktioner i Unix - Forskellige typer funktioner i Unix med syntaks

Indholdsfortegnelse:

Anonim

Introduktion til funktioner i Unix

I denne artikel lærer vi om nogle grundlæggende funktioner i Unix. Mange af os har allerede allerede vidst, hvad funktioner er, men lad mig give en kort introduktion om det. En funktion indeholder et sæt instruktioner, der skal udføres med en kode skrevet i en indrykket blok. Disse er nyttige, når vi har en bestemt opgave, som et program skal udføre gentagne gange i regelmæssige tidsintervaller. Det anbefales åbenlyst ikke at skrive den samme kode hver gang, så ved hjælp af funktioner kan vi let genbruge koden og kalde den, når det er nødvendigt. Lad os nu se, hvordan vi kan definere og implementere disse funktioner gennem Unix Shell-scripting.

Syntaks over funktioner i Unix

Oprettelsen af ​​funktioner følger den grundlæggende syntaksekode som følger. Eksempeleksempel på en funktion.

Kode

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

Her har vi skrevet to ekko-udsagn i vores første funktion. For at kalde funktionen, kan vi bare kalde funktionens navn.

Produktion

Overførsel af parametre til funktion i Unix

Vi har med succes lavet en simpel funktion, kaldet den og udført de kommandoer, som vi krævede. Hvad nu, hvis jeg har brug for at tilføje to tal gennem brugerinput-værdier? Så her vil vi se, hvordan vi kan skrive en funktion med argumenter. Den grundlæggende syntaks ville være den samme. Eksempel på parameteriseret funktion

Kode

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

Produktion

Det vil bede os om at indtaste et navn og ønske dem

På samme måde kan vi endda oprette en scriptfil. Lad os skrive en tilføjelsesfunktion i et shell-script og se, hvordan det fungerer.

Kode

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!

Produktion

Bemærk: Nogle gange under udførelsen af ​​sh-scriptet kan vi muligvis få fejlen som:

Det eneste, der skal gøre her, er ved at opdatere filtilladelser.

Vi kan endda udføre sh-filen ved hjælp af kommandoen ved. /add.sh

På samme måde kan vi endda udføre en funktion ved at levere kommandolinjeargumenter. Så lad os se, hvordan vi kan gøre dette ved at tilføje tre numre.

Kode

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

Nu kan vi videregive vores tal som kommandolinjeargumenter og derefter få vores krævede output.

Hvad hvis vi ikke overfører nogen argumenter til funktionen?

Og hvis vi kun giver to argumenter?

Ellers, kan vi passere strenge?

Vi kan endda have vores kode på en sådan måde, at den kan gentage en fejl, når ugyldige argumenter sendes. Lad os se nedenfor, hvordan vi kan bede brugeren om at indtaste argumenter, hvis der ikke blev overført kommandolinjeargumenter.

Kode

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

Produktion

Hvis vi ikke overfører nogen argumenter til vores Funktion, giver det vores ekko, hvor vi har bedt om at give to kommandolinjnumre og derefter give output af summen. Det gør det, da vi ikke fortalte funktionen om at stoppe, hvis vi støder på fejlen. I det andet tilfælde kan vi se det output, der giver summen ordentligt uden mellemliggende ekko. Vi kan endda bruge return kommandoer til at returnere værdier til disse Unix-funktioner. Værdien i returopgørelsen gemmes i $?

Produktion

Kan du som en øvelse prøve at skrive en funktion, der bryder ud, hvis vi ikke videregiver argumenterne?

Indlejrede funktioner i Unix

Ved at navngive kan vi regne ud, at nestede funktioner handler om at definere en funktion inde i en funktion. Lad os se, hvordan vi kan gøre det nu. Vi skriver dette inde i et shell-script for lettere at forstå.

Kode

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!

Produktion

I ovenstående eksempel kaldte vi netop den anden funktion inden i den første. Lad os nu kun skrive en funktion inde i den første funktion.

Kode

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!

Hvilken output forventer du nu? Tror du, at både detaljerne i den første og den anden funktion vises?

Produktion

Vi kan tydeligt se, at funktionen ikke kaldte den indre funktion deri. Så hvad er problemet her?

Inde i vores script har vi kun kaldet den første funktion. Prøv nu ved også at kalde den anden funktion. Som bemærket, her vil vi ikke være i stand til at kalde funktionen i sig selv. I ovenstående kode har vi fremhævet den tilføjede kode.

Produktion

Bemærk, at ekkoet, som vi har skrevet efter udførelsen af ​​den anden funktion, er kommet foran sig selv. Hvis vi nu prøver at kalde den anden funktion først, efterfulgt af den første?

Produktion

Vi kan tydeligt forstå, at indtil den primære / første funktion kaldes, kaldes den indre funktion ikke. Kan du prøve at tilføje to numre ved hjælp af indlejrede funktioner? (Én til at indtaste brugerværdier og andre for at tilføje numrene)

Konklusion

Så dette er, hvordan vi kan definere funktioner i Unix. Og en vigtig fordel i Unix, som jeg fandt, var, at fejlen i output let kan forstås og kan hjælpe med at rette vores kode i overensstemmelse hermed. Prøv at udføre disse funktioner, og brug også kommandoen retur. Har lykkelig læring i Unix.

Anbefalet artikel

Dette har været en guide til funktioner i Unix. Her diskuterer vi en introduktion til Funktioner i Unix og forskellige typer funktioner sammen med syntaks og detaljeret forklaring. Du kan også gennemgå vores andre foreslåede artikler for at lære mere -

  1. Unix Arkitektur
  2. Unix-kommandoer
  3. Anvendelser af Unix
  4. UNIX-interviewspørgsmål
  5. Vejledning til Unix-operatører