Bash Scripting – Funksjoner

Bash Scripting – Funksjoner

Et Bash-skript er en ren tekstfil. Denne filen inneholder forskjellige kommandoer for trinn-for-trinn-utførelse. Disse kommandoene kan skrives direkte inn i kommandolinjen, men fra en gjenbruksoppfatning er det nyttig å lagre alle de innbyrdes relaterte kommandoene for en spesifikk oppgave i en enkelt fil. Vi kan bruke den filen for å utføre settet med kommandoer en eller flere ganger i henhold til våre krav.

Her i denne artikkelen skal vi diskutere bruken av funksjoner i Bash Scripting.

I programmering er en funksjon en kodeblokk som utfører noen oppgaver, og den kan kalles flere ganger for å utføre oppgaver. Det gir modularitet i programmet og reduserer kodelengden. Det enkleste eksemplet på bruk av funksjon i Bash-skripting kan gis som –



Eksempel på skript:

#!/bin/bash #It is a function myFunction () { echo Hello World from techcodeview.com } #function call myFunction 

Produksjon:

Hello World from techcodeview.com 

Eksempelet ovenfor viser en funksjon som skriver ut noe når det kalles. Så den grunnleggende syntaksen for å skrive funksjoner i et Bash-skript vil være

Syntaks:

# for defining function_name(){ commands ..... } function_name # for calling 

I tillegg til dette kan vi også ha funksjoner med beståtte argumenter og med returverdier. La oss nå diskutere dem.

Fungerer med beståtte argumenter

Vi kan legge til argumenter eller parametere til en funksjon og sende data ved å bruke den til funksjonen slik at funksjonen kan handle med disse dataene. I bash-skripting kan vi bruke følgende syntaks for å skrive en funksjon med beståtte argumenter.

Syntaks for funksjoner med beståtte argumenter:

#for defining function_name(){ ..... parameter_1 = $1 parameter_2 = $2 . . . parameter_n = $n .... commands ..... } #for calling function_name p1 p2 ....pn 

Vi kan sende argumentene direkte mens vi kaller funksjonen og kan få tilgang til dem med $1, $2 ….. $n innenfor funksjonen. La oss se et eksempel for en mer klar forståelse av det.

Eksempel på funksjoner med beståtte argumenter:

#!/bin/bash add_two_num(){ local sum=$(($1+$2)) echo sum of $1 and $2 is $sum } add_two_num 2 3 

Utdata av funksjoner med beståtte argumenter:

sum of 2 and 3 is 5 

Over er et skript for å legge til to tall. Her har vi gitt 2 og 3 som argumenter. Vi har fått tilgang til dem ved å bruke $1 og $2 fra funksjonen og beregnet summen deres og skrevet den ut til terminalen. Nedenfor er terminalskall-avbildningen etter utførelse av skriptet -

Utdata av funksjoner med beståtte argumenter

Funksjoner med returverdier

En returverdi produseres og returneres til anropsmetoden av en funksjon etter at den er fullført. En returverdi kan brukes til å dele det produserte resultatet eller en statuskode om hvorvidt en funksjon ble vellykket utført eller ikke. I Bash-skripting blir returverdien tilordnet $? variabel.

Et eksempel på det samme er gitt nedenfor -

Eksempel på funksjoner med returverdier:

#!/bin/bash myfun(){ return 7 } myfun echo The return value is $? 

Utdata av funksjoner med returverdier:

The return value is 7 

Nedenfor er terminalskallutgangen etter utføring av skriptet -

Utdata av funksjoner med returverdier

La oss nå endre den tidligere summen av to-tallsskriptet.

Endret kode:

#!/bin/bash myfun(){ return $(($1+$2)) } add_two_num 2 3 echo The sum is $? 

Utdata av modifisert kode:

The sum is 5 

Nå er koden ovenfor et eksempel på bruk av både parametere og returverdi i en Bash-skriptfunksjon.

Nedenfor er terminalskall-avbildningen etter utførelse av skriptet -

Utdata av modifisert kode

Variabelt omfang

Omfang i et program eller skript er en region der variablene har sin eksistens. Hvis en variabel er deklarert inne i en funksjon, er den vanligvis en lokal variabel, og hvis den er deklarert utenfor, er den en global variabel. Når det gjelder et bash-skript, er dette konseptet litt annerledes, her er enhver variabel enten den er skrevet inne i en funksjon eller utenfor en funksjon som standard en global variabel. Hvis vi vil lage en lokal variabel, må vi bruke søkeordet lokal.

Det er best praksis å alltid bruke en lokal variabel i en funksjon for å unngå unødvendig forvirring.

Et eksempel på det samme er gitt nedenfor -

Eksempel på variabelt omfang:

#!/bin/bash var1='Apple' #global variable myfun(){ local var2='Banana' #local variable var3='Cherry' #global variable echo 'The name of first fruit is $var1' echo 'The name of second fruit is $var2' } myfun #calling function echo 'The name of first fruit is $var1' #trying to access local variable echo 'The name of second fruit is $var2' echo 'The name of third fruit is $var3' 

Utgang av variabelt omfang:

The name of first fruit is Apple The name of second fruit is Banana The name of first fruit is Apple The name of second fruit is The name of third fruit is Cherry 

Her i dette eksemplet ovenfor er var2 en lokal variabel, så når vi får tilgang til den fra funksjonen går den bra, men når vi prøver å få tilgang til den utenfor funksjonen, gir den oss et tomt resultat i utdataene.

På den annen side, i motsetning til programmeringsspråk, selv om var3 er definert i en funksjon, fungerer den fortsatt som en global variabel, og den kan nås utenfor funksjonen. Nedenfor er terminalskall-avbildningen etter utførelse av skriptet –

Utgang av variabelt omfang

Overstyre kommandoer

Det er mulig å ha en funksjon med samme navn som en kommando. Det er nyttig hvis vi ønsker å kjøre en kommando med spesifikke alternativer eller ønsker å ha en tilpasset utgave av den.

Et eksempel på det samme er gitt nedenfor -

Eksempel på overstyringskommandoer:

#!/bin/bash #overriding command echo(){ builtin echo 'The name is : $1' } echo 'Satyajit Ghosh' 

Utdata av overstyrende kommandoer:

The name is : Satyajit Ghosh 

Her i dette eksemplet har vi overstyrt ekko kommando. Nå før du skriver ut den gitte strengen, legger den til strengen med noen flere ord og skriver deretter ut. Nedenfor er terminalskall-avbildningen etter utførelse av skriptet -

Utdata av overstyrende kommandoer

Topp Artikler

Kategori

Interessante Artikler