Introduksjon til funksjoner i Unix
I denne artikkelen lærer vi om noen grunnleggende funksjoner i Unix. Mange av oss har allerede visst hva funksjoner er, men la meg gi en kort introduksjon om det. En funksjon inneholder et sett med instruksjoner som skal utføres med en kode skrevet i en innrykket blokk. Disse er nyttige når vi har en viss oppgave som et program må gjøre gjentatte ganger i jevne mellomrom. Å skrive den samme koden hver gang anbefales tydeligvis ikke, så ved å bruke funksjoner kan vi enkelt bruke gjenstanden og kalle den når det er nødvendig. La oss nå se hvordan vi kan definere og implementere disse funksjonene gjennom Unix Shell-scripting.
Syntaks for funksjoner i Unix
Opprettelsen av funksjoner følger den grunnleggende syntakskoden som følger. Eksempel på en funksjon.
Kode
First()
(
echo “ First Program for defining functions ”;
echo “ Yayyy! “;
)
Her har vi skrevet to ekkouttalelser i vår første funksjon. For å ringe funksjonen, kan vi bare kalle funksjonens navn.
Produksjon
Overføre parametere til å fungere i Unix
Vi har med hell laget en enkel funksjon, kalt den og utført kommandoene som vi ønsket. Hva om jeg trenger å legge til to tall gjennom inntastede verdier fra brukerne? Så her skulle vi se hvordan vi kan skrive en funksjon med argumenter. Den grunnleggende syntaks vil være den samme. Eksempel på parameterisert funksjon
Kode
Second()
(
echo “Enter your name: “;
read name;
echo “Hi $name, have a good day”;
)
Produksjon
Det vil be oss om å oppgi et navn og ønske dem
På samme måte kan vi til og med lage en skriptfil. La oss skrive en tilleggsfunksjon i et skallskript 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!
Produksjon
Merk: Noen ganger kan vi, under utføring av sh-skriptet, få feilen som:
Det eneste dette har å gjøre her er ved å oppdatere filtillatelsene.
Vi kan til og med utføre sh-filen ved å bruke kommandoen av. /add.sh
På samme måte kan vi til og med utføre en funksjon ved å gi kommandolinjeargumenter. Så la oss se hvordan vi kan gjøre dette ved å legge til tre tall.
Kode
(
number1=$1;
number2=$2;
number3=$3;
sum=$((number1+number2+number3));
echo “Sum is $sum”;
)
Nå kan vi sende tallene våre som kommandolinjeargumenter og deretter få den nødvendige utdata.
Hva om vi ikke gir noen argumenter til funksjonen?
Og hvis vi bare gir to argumenter?
Ellers, kan vi passere strenger?
Vi kan til og med ha koden vår på en slik måte at den kan gjenspeile en feil når ugyldige argumenter sendes. Nedenfor her, la oss se hvordan vi kan be brukeren legge inn argumenter hvis det ikke ble gitt 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 “;
)
Produksjon
Hvis vi ikke gir noen argumenter til vår funksjon, gir det ekkoet vårt der vi har bedt om å gi to kommandolinjetall og deretter gi resultatet av summen. Det gjør det, da vi ikke ba Funksjonen stoppe hvis vi støter på feilen. I det andre tilfellet kan vi se at output gir summen ordentlig uten noe mellomliggende ekko. Vi kan til og med bruke returkommandoer for å returnere verdier for disse Unix-funksjonene. Verdien i returoppgaven blir lagret i $?
Produksjon
Kan du som en øvelse prøve å skrive en funksjon som bryter ut hvis vi ikke passerer argumentene?
Nested-funksjoner i Unix
Ved å navngi kan vi finne ut at Nested Functions handler om å definere en funksjon i en funksjon. La oss se hvordan vi kan gjøre det nå. Vi skriver dette inne i et shell-script for enklere forståelse.
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!
Produksjon
I eksemplet ovenfor kalte vi bare den andre funksjonen inne i den første. La oss nå skrive en funksjon inne i den første funksjonen.
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!
Nå, hvilken utgang forventer du? Tror du at både detaljene i den første og den andre funksjonen vil bli vist?
Produksjon
Vi kan tydelig se at funksjonen ikke kalte den indre funksjonen inne i den. Så hva er problemet her?
Inne i skriptet vårt har vi bare kalt den første funksjonen. Nå kan du prøve å kalle den andre funksjonen også. Som observert vil vi her ikke kunne kalle funksjonen av seg selv. I koden over har vi markert den koden som er lagt til.
Produksjon
Legg merke til at ekkoet som vi har skrevet etter utførelsen av den andre funksjonen, har kommet foran seg selv. Hvis vi prøver å kalle den andre funksjonen først, etterfulgt av den første?
Produksjon
Vi kan tydelig forstå at inntil funksjonen ikke kalles inntil hoved / første funksjon kalles. Som en øvelse, kan du prøve å legge til to tall ved hjelp av nestede funksjoner? (En for å legge inn brukerverdier og andre for å legge til tallene)
Konklusjon
Så dette er hvordan vi kan definere funksjoner i Unix. Og en stor fordel i Unix jeg fant var at feilen i utdataene lett kan forstås og kan bidra til å rette opp koden vår deretter. Prøv å utføre disse funksjonene og bruk returkommando også. Ha gledelig læring i Unix.
Anbefalt artikkel
Dette har vært en guide til Funksjoner i Unix. Her diskuterer vi en introduksjon til Funksjoner i Unix og forskjellige typer funksjoner sammen med syntaks og detaljforklaring. Du kan også gå gjennom andre foreslåtte artikler for å lære mer -
- Unix Architecture
- Unix-kommandoer
- Bruk av Unix
- UNIX intervjuspørsmål
- Veiledning til Unix-operatører