logo

Bash funktioner

I dette emne har vi demonstreret det grundlæggende i bash-funktioner, og hvordan de fungerer i bash-shell-scripting.

Funktioner i bash scripting er en fantastisk mulighed for at genbruge kode. En Bash-funktion kan defineres som et sæt kommandoer, der kan kaldes flere gange i bash-scriptet. Formålet med funktion i bash er at hjælpe dig med at gøre dine scripts mere læsbare og undgå at skrive den samme kode igen og igen. Det giver også udviklerne mulighed for at bryde en kompliceret og langvarig kode til små dele, som kan kaldes, når det er nødvendigt. Funktioner kan kaldes når som helst og gentagne gange, hvilket vil gøre os i stand til at genbruge, optimere og minimere koden.

Følgende er nogle nøglepunkter om bash-funktioner:

  • En funktion skal erklæres i shell-scriptet, før vi kan bruge den.
  • Argumenter kan overføres til funktionerne og tilgås inde i funktionen som , osv.
  • Lokale variabler kan tildeles i funktionen, og omfanget af sådanne variable vil kun være den pågældende funktion.
  • Indbyggede kommandoer i Bash shell kan tilsidesættes ved hjælp af funktioner.

Syntaks

Syntaksen til at erklære en bash-funktion kan defineres i to formater:

1. Den første metode starter med funktionsnavnet efterfulgt af parenteser. Det er den mest foretrukne og almindeligt anvendte metode:

 function_name () { commands } 

Enkeltlinjeversion kan nævnes som nedenfor:

 function_name () { commands; } 

2. Den anden metode starter med det funktionsreserverede ord efterfulgt af funktionsnavnet:

java trim streng
 function function_name { commands } 

Enkeltlinjeversion kan nævnes som nedenfor:

 function function_name { commands; } 

Sammenlignet med de fleste programmeringssprog er Bash-funktionerne noget begrænsede. Lad os forstå konceptet ved hjælp af nogle eksempler:

Eksempel: Metode 1

 #!/bin/bash JTP () { echo 'Welcome to Javatpoint.' } JTP 

Produktion

 Welcome to Javatpoint. 

Eksempel: Metode 2

 #!/bin/bash function JTP { echo 'Welcome to Javatpoint.' } JTP 

Produktion

 Welcome to Javatpoint. 

Passerende argumenter

Som de fleste programmeringssprog kan vi også videregive argumenterne og behandle dataene i bash-funktioner. Vi kan indsætte data i funktionen på samme måde som at sende kommandolinjeargumenter til et bash-script.

quicksort-algoritme

For at sende et vilkårligt antal argumenter til bash-funktionen, er vi forpligtet til at indsætte dem lige efter funktionens navn. Vi skal anvende mellemrum mellem funktionsnavn og argumenter. Det vil også være et godt valg at bruge dobbelte anførselstegn omkring argumenterne for at forhindre fejlparsing af argumenterne med mellemrum i.

Følgende er nogle nøglepunkter om at overføre argumenter til bash-funktionerne:

  • De givne argumenter tilgås som , , ... $n, svarende til positionen af ​​argumenterne efter funktionens navn.
  • Variablen

    I dette emne har vi demonstreret det grundlæggende i bash-funktioner, og hvordan de fungerer i bash-shell-scripting.

    Funktioner i bash scripting er en fantastisk mulighed for at genbruge kode. En Bash-funktion kan defineres som et sæt kommandoer, der kan kaldes flere gange i bash-scriptet. Formålet med funktion i bash er at hjælpe dig med at gøre dine scripts mere læsbare og undgå at skrive den samme kode igen og igen. Det giver også udviklerne mulighed for at bryde en kompliceret og langvarig kode til små dele, som kan kaldes, når det er nødvendigt. Funktioner kan kaldes når som helst og gentagne gange, hvilket vil gøre os i stand til at genbruge, optimere og minimere koden.

    Følgende er nogle nøglepunkter om bash-funktioner:

    • En funktion skal erklæres i shell-scriptet, før vi kan bruge den.
    • Argumenter kan overføres til funktionerne og tilgås inde i funktionen som $1, $2 osv.
    • Lokale variabler kan tildeles i funktionen, og omfanget af sådanne variable vil kun være den pågældende funktion.
    • Indbyggede kommandoer i Bash shell kan tilsidesættes ved hjælp af funktioner.

    Syntaks

    Syntaksen til at erklære en bash-funktion kan defineres i to formater:

    1. Den første metode starter med funktionsnavnet efterfulgt af parenteser. Det er den mest foretrukne og almindeligt anvendte metode:

     function_name () { commands } 

    Enkeltlinjeversion kan nævnes som nedenfor:

     function_name () { commands; } 

    2. Den anden metode starter med det funktionsreserverede ord efterfulgt af funktionsnavnet:

     function function_name { commands } 

    Enkeltlinjeversion kan nævnes som nedenfor:

     function function_name { commands; } 

    Sammenlignet med de fleste programmeringssprog er Bash-funktionerne noget begrænsede. Lad os forstå konceptet ved hjælp af nogle eksempler:

    Eksempel: Metode 1

     #!/bin/bash JTP () { echo 'Welcome to Javatpoint.' } JTP 

    Produktion

     Welcome to Javatpoint. 

    Eksempel: Metode 2

     #!/bin/bash function JTP { echo 'Welcome to Javatpoint.' } JTP 

    Produktion

     Welcome to Javatpoint. 

    Passerende argumenter

    Som de fleste programmeringssprog kan vi også videregive argumenterne og behandle dataene i bash-funktioner. Vi kan indsætte data i funktionen på samme måde som at sende kommandolinjeargumenter til et bash-script.

    For at sende et vilkårligt antal argumenter til bash-funktionen, er vi forpligtet til at indsætte dem lige efter funktionens navn. Vi skal anvende mellemrum mellem funktionsnavn og argumenter. Det vil også være et godt valg at bruge dobbelte anførselstegn omkring argumenterne for at forhindre fejlparsing af argumenterne med mellemrum i.

    Følgende er nogle nøglepunkter om at overføre argumenter til bash-funktionerne:

    • De givne argumenter tilgås som $1, $2, $3 ... $n, svarende til positionen af ​​argumenterne efter funktionens navn.
    • Variablen $0 holdes reserveret til funktionens navn.
    • Variablen $# bruges til at holde antallet af positionsargument/parameter givet til funktionen.
    • Variablerne $* og $@ bruges til at holde alle de argumenter/parametre, der er givet til funktionen.
      • Når $* bruges med dobbelte anførselstegn (dvs. '$*' ), udvides det til en enkelt streng adskilt af mellemrummet. For eksempel '$1 $2 $n osv.'.
      • Når $@ bruges med dobbelte anførselstegn (dvs. '$@' ), udvides det til den separate streng. For eksempel '$1' '$2' '$n' osv.
      • Når $* og $# ikke bruges sammen med de dobbelte anførselstegn, er de begge ens.

    Følgende er koden, der illustrerer proceduren for, hvordan man sender argumenter til funktioner og får adgang til argumenterne inde i funktionen.

    Bash Script

     #!/bin/bash #Script to pass and access arguments function_arguments() { echo $1 echo $2 echo $3 echo $4 echo $5 } #Calling function_arguments function_arguments 'We''welcome''you''on''Javatpoint.' 

    Produktion

    Bash funktioner

    I dette script har vi tilføjet værdierne 'Vi', 'velkommen', 'du', 'på' og 'Javatpoint' efter at vi har kaldt funktionsargumenterne. Disse værdier overføres til funktionsargumenter som parametre og gemt i en lokal variabel. Men i modsætning til andre sprog gemmer tolken de beståede værdier i foruddefinerede variabler, som derefter navngives i henhold til rækkefølgen af ​​beståede parametre.

    For eksempel,

    'Vi' ord gemmes til variablen 1 .
    'Velkommen' ord gemmes til variablen 2 .
    'du' ord gemmes til variablen 3 .
    'på' ord gemmes til variablen 4 .
    'Javatpoint' ord gemmes til variablen 5 .

    Variabelt omfang

    Globale variabler defineres som de variable, der kan tilgås overalt i scriptet uanset omfanget. Som standard er alle variabler defineret som globale variabler, selvom de er erklæret inde i funktionen. Vi kan også oprette variabler som en lokal variabel. Lokale variabler kan erklæres i funktionslegemet med ?lokale? søgeord, når de tildeles første gang. De er kun tilgængelige i den funktion. Vi kan oprette lokale variabler med samme navn i forskellige funktioner. For at tilføje en lokal variabel kan vi bruge følgende syntaks:

     local var_name= 

    For bedre at forstå, hvordan variabler omfang fungerer i Bash Scripting, tjek følgende eksempel:

    Bash Script

     #!/bin/bash v1='A' v2='B' my_var () { local v1='C' v2='D' echo 'Inside Function' echo 'v1 is $v1.' echo 'v2 is $v2.' } echo 'Before Executing the Function' echo 'v1 is $v1.' echo 'v2 is $v2.' my_var echo 'After Executing the Function' echo 'v1 is $v1.' echo 'v2 is $v2.' 

    Produktion

    Bash funktioner

    I henhold til output, hvis vi indstiller en lokal variabel i funktionskroppen med samme navn som en eksisterende global variabel, vil den have forrang over den globale variabel. Globale variabler kan ændres i funktionen.

    Returværdier

    De fleste programmeringssprog har konceptet med at returnere en værdi for funktionerne. Det betyder, at funktionen skal sende data tilbage til det oprindelige opkaldssted. I modsætning til funktioner i 'rigtige' programmeringssprog, giver Bash-funktionen ikke støtte til at returnere en værdi, når den kaldes. De giver os dog mulighed for at indstille en returstatus, der svarer til, hvordan et program eller kommando afsluttes med en exit-status. Når en bash-funktion er fuldført, er dens returværdi status for den sidst udførte sætning i funktionen. Det returnerer 0 for successtatus og ikke-nul decimaltal i intervallet 1-255 for fiasko.

    Returstatus kan angives ved at bruge nøgleordet 'return', og det tildeles variablen $?. Returerklæringen afslutter funktionen og fungerer som funktionens exit-status.

    For eksempel, overveje følgende kode:

    Bash Script

     #!/bin/bash #Setting up a return status for a function print_it () { echo Hello $1 return 5 } print_it User print_it Reader echo The previous function returned a value of $? 

    Produktion

    Bash funktioner

    En anden bedre mulighed for at returnere en værdi fra en funktion er at sende værdien til stdout ved brug af ekko eller printf kommandoer, som vist nedenfor:

    Bash Script

     #!/bin/bash print_it () { local my_greet='Welcome to Javatpoint.' echo '$my_greet' } my_greet='$(print_it)' echo $my_greet 

    Produktion

     Welcome to Javatpoint. 

    Tilsidesættende kommandoer

    Vi har en mulighed for at tilsidesætte bash-kommandoerne ved at oprette en funktion med samme navn som den kommando, som vi skal tilsidesætte. For eksempel, hvis vi vil tilsidesætte kommandoen 'ekko', så skal vi oprette en funktion med navnet 'ekko'.

    Dette koncept med at tilsidesætte bash-kommandoerne kan være nyttigt i nogle scenarier, som når vi vil bruge en kommando med specifikke muligheder. Også når vi ikke kan lide at give hele kommandoen muligheder for flere gange i scriptet. I sådanne tilfælde kan vi tilsidesætte den indbyggede bash-kommando for kommando med muligheder. Lad os nu forstå konceptet med at tilsidesætte kommandoerne i Bash Shell Scripting ved hjælp af nogle eksempler:

    Eksempel

    I dette eksempel har vi tilsidesat 'ekko'-kommandoen og tilføjet tidsstemplet i form af argumentet til 'ekko'-kommandoen.

    Bash Script

     #!/bin/bash #Script to override command using function echo () { builtin echo -n `date +'[%m-%d %H:%M:%S]'` ': ' builtin echo $1 } echo 'Welcome to Javatpoint.' 

    Produktion

    Bash funktioner

    Konklusion

    I dette emne demonstrerede vi om Bash Function. En Bash-funktion betragtes som en blok med genanvendelig kode, der er udviklet til at udføre en specifik operation. Når det er defineret, kan det kaldes flere gange i et script.


    holdes reserveret til funktionens navn.
  • Variablen $# bruges til at holde antallet af positionsargument/parameter givet til funktionen.
  • Variablerne $* og $@ bruges til at holde alle de argumenter/parametre, der er givet til funktionen.
    • Når $* bruges med dobbelte anførselstegn (dvs. '$*' ), udvides det til en enkelt streng adskilt af mellemrummet. For eksempel ' $n osv.'.
    • Når $@ bruges med dobbelte anførselstegn (dvs. '$@' ), udvides det til den separate streng. For eksempel '' '' '$n' osv.
    • Når $* og $# ikke bruges sammen med de dobbelte anførselstegn, er de begge ens.

Følgende er koden, der illustrerer proceduren for, hvordan man sender argumenter til funktioner og får adgang til argumenterne inde i funktionen.

Bash Script

 #!/bin/bash #Script to pass and access arguments function_arguments() { echo  echo  echo  echo  echo  } #Calling function_arguments function_arguments 'We''welcome''you''on''Javatpoint.' 

Produktion

Bash funktioner

I dette script har vi tilføjet værdierne 'Vi', 'velkommen', 'du', 'på' og 'Javatpoint' efter at vi har kaldt funktionsargumenterne. Disse værdier overføres til funktionsargumenter som parametre og gemt i en lokal variabel. Men i modsætning til andre sprog gemmer tolken de beståede værdier i foruddefinerede variabler, som derefter navngives i henhold til rækkefølgen af ​​beståede parametre.

c streng i array

For eksempel,

'Vi' ord gemmes til variablen 1 .
'Velkommen' ord gemmes til variablen 2 .
'du' ord gemmes til variablen 3 .
'på' ord gemmes til variablen 4 .
'Javatpoint' ord gemmes til variablen 5 .

Variabelt omfang

Globale variabler defineres som de variable, der kan tilgås overalt i scriptet uanset omfanget. Som standard er alle variabler defineret som globale variabler, selvom de er erklæret inde i funktionen. Vi kan også oprette variabler som en lokal variabel. Lokale variabler kan erklæres i funktionslegemet med ?lokale? søgeord, når de tildeles første gang. De er kun tilgængelige i den funktion. Vi kan oprette lokale variabler med samme navn i forskellige funktioner. For at tilføje en lokal variabel kan vi bruge følgende syntaks:

 local var_name= 

For bedre at forstå, hvordan variabler omfang fungerer i Bash Scripting, tjek følgende eksempel:

Bash Script

 #!/bin/bash v1='A' v2='B' my_var () { local v1='C' v2='D' echo 'Inside Function' echo 'v1 is $v1.' echo 'v2 is $v2.' } echo 'Before Executing the Function' echo 'v1 is $v1.' echo 'v2 is $v2.' my_var echo 'After Executing the Function' echo 'v1 is $v1.' echo 'v2 is $v2.' 

Produktion

Bash funktioner

I henhold til output, hvis vi indstiller en lokal variabel i funktionskroppen med samme navn som en eksisterende global variabel, vil den have forrang over den globale variabel. Globale variabler kan ændres i funktionen.

string.compareto c#

Returværdier

De fleste programmeringssprog har konceptet med at returnere en værdi for funktionerne. Det betyder, at funktionen skal sende data tilbage til det oprindelige opkaldssted. I modsætning til funktioner i 'rigtige' programmeringssprog, giver Bash-funktionen ikke støtte til at returnere en værdi, når den kaldes. De giver os dog mulighed for at indstille en returstatus, der svarer til, hvordan et program eller kommando afsluttes med en exit-status. Når en bash-funktion er fuldført, er dens returværdi status for den sidst udførte sætning i funktionen. Det returnerer 0 for successtatus og ikke-nul decimaltal i intervallet 1-255 for fiasko.

Returstatus kan angives ved at bruge nøgleordet 'return', og det tildeles variablen $?. Returerklæringen afslutter funktionen og fungerer som funktionens exit-status.

For eksempel, overveje følgende kode:

Bash Script

 #!/bin/bash #Setting up a return status for a function print_it () { echo Hello  return 5 } print_it User print_it Reader echo The previous function returned a value of $? 

Produktion

Bash funktioner

En anden bedre mulighed for at returnere en værdi fra en funktion er at sende værdien til stdout ved brug af ekko eller printf kommandoer, som vist nedenfor:

java hej verden

Bash Script

 #!/bin/bash print_it () { local my_greet='Welcome to Javatpoint.' echo '$my_greet' } my_greet='$(print_it)' echo $my_greet 

Produktion

 Welcome to Javatpoint. 

Tilsidesættende kommandoer

Vi har en mulighed for at tilsidesætte bash-kommandoerne ved at oprette en funktion med samme navn som den kommando, som vi skal tilsidesætte. For eksempel, hvis vi vil tilsidesætte kommandoen 'ekko', så skal vi oprette en funktion med navnet 'ekko'.

Dette koncept med at tilsidesætte bash-kommandoerne kan være nyttigt i nogle scenarier, som når vi vil bruge en kommando med specifikke muligheder. Også når vi ikke kan lide at give hele kommandoen muligheder for flere gange i scriptet. I sådanne tilfælde kan vi tilsidesætte den indbyggede bash-kommando for kommando med muligheder. Lad os nu forstå konceptet med at tilsidesætte kommandoerne i Bash Shell Scripting ved hjælp af nogle eksempler:

Eksempel

I dette eksempel har vi tilsidesat 'ekko'-kommandoen og tilføjet tidsstemplet i form af argumentet til 'ekko'-kommandoen.

Bash Script

 #!/bin/bash #Script to override command using function echo () { builtin echo -n `date +'[%m-%d %H:%M:%S]'` ': ' builtin echo  } echo 'Welcome to Javatpoint.' 

Produktion

Bash funktioner

Konklusion

I dette emne demonstrerede vi om Bash Function. En Bash-funktion betragtes som en blok med genanvendelig kode, der er udviklet til at udføre en specifik operation. Når det er defineret, kan det kaldes flere gange i et script.