logo

Bash funkcijas

Šajā tēmā mēs esam parādījuši bash funkciju pamatus un to, kā tās darbojas bash čaulas skriptēšanā.

Bash skriptu funkcijas ir lieliska iespēja atkārtoti izmantot kodu. Bash funkciju var definēt kā komandu kopu, ko bash skriptā var izsaukt vairākas reizes. Bash funkcijas mērķis ir palīdzēt jums padarīt skriptus lasāmākus un izvairīties no viena un tā paša koda rakstīšanas atkal un atkal. Tas arī ļauj izstrādātājiem sadalīt sarežģītu un garu kodu mazās daļās, kuras var izsaukt, kad vien nepieciešams. Funkcijas var izsaukt jebkurā laikā un atkārtoti, kas ļaus mums atkārtoti izmantot, optimizēt un samazināt kodu.

Tālāk ir minēti daži galvenie punkti par bash funkcijām:

  • Funkcija ir jādeklarē čaulas skriptā, lai to varētu izmantot.
  • Argumentus var nodot funkcijām un piekļūt funkcijā kā , utt.
  • Vietējos mainīgos var piešķirt funkcijā, un šādu mainīgo apjoms būs tikai konkrētā funkcija.
  • Bash apvalka iebūvētās komandas var ignorēt, izmantojot funkcijas.

Sintakse

Bash funkcijas deklarēšanas sintaksi var definēt divos formātos:

1. Pirmā metode sākas ar funkcijas nosaukumu, kam seko iekavas. Tā ir visizplatītākā un populārākā metode:

 function_name () { commands } 

Vienas rindas versiju var minēt šādi:

 function_name () { commands; } 

2. Otrā metode sākas ar funkcijas rezervēto vārdu, kam seko funkcijas nosaukums:

fmovies Indija
 function function_name { commands } 

Vienas rindas versiju var minēt šādi:

 function function_name { commands; } 

Salīdzinot ar lielāko daļu programmēšanas valodu, Bash funkcijas ir nedaudz ierobežotas. Izpratīsim jēdzienu, izmantojot dažus piemērus:

Piemērs: 1. metode

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

Izvade

 Welcome to Javatpoint. 

Piemērs: 2. metode

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

Izvade

 Welcome to Javatpoint. 

Argumentu nodošana

Tāpat kā lielākā daļa programmēšanas valodu, mēs varam arī nodot argumentus un apstrādāt datus bash funkcijās. Mēs varam ievietot datus funkcijā līdzīgi kā komandrindas argumentus bash skriptam.

git pull izcelsmes meistars

Lai funkcijai bash nodotu neierobežotu skaitu argumentu, tie ir jāievieto tieši aiz funkcijas nosaukuma. Mums ir jāpiemēro atstarpes starp funkcijas nosaukumu un argumentiem. Tā būs arī lieliska izvēle ap argumentiem izmantot dubultpēdiņas, lai novērstu argumentu nepareizu sadali ar atstarpēm.

Tālāk ir norādīti daži galvenie punkti par argumentu nodošanu bash funkcijām:

  • Dotajiem argumentiem var piekļūt kā , , ... $n, kas atbilst argumentu pozīcijai aiz funkcijas nosaukuma.
  • Mainīgais

    Šajā tēmā mēs esam parādījuši bash funkciju pamatus un to, kā tās darbojas bash čaulas skriptēšanā.

    Bash skriptu funkcijas ir lieliska iespēja atkārtoti izmantot kodu. Bash funkciju var definēt kā komandu kopu, ko bash skriptā var izsaukt vairākas reizes. Bash funkcijas mērķis ir palīdzēt jums padarīt skriptus lasāmākus un izvairīties no viena un tā paša koda rakstīšanas atkal un atkal. Tas arī ļauj izstrādātājiem sadalīt sarežģītu un garu kodu mazās daļās, kuras var izsaukt, kad vien nepieciešams. Funkcijas var izsaukt jebkurā laikā un atkārtoti, kas ļaus mums atkārtoti izmantot, optimizēt un samazināt kodu.

    Tālāk ir minēti daži galvenie punkti par bash funkcijām:

    • Funkcija ir jādeklarē čaulas skriptā, lai to varētu izmantot.
    • Argumentus var nodot funkcijām un piekļūt funkcijā kā $1, $2 utt.
    • Vietējos mainīgos var piešķirt funkcijā, un šādu mainīgo apjoms būs tikai konkrētā funkcija.
    • Bash apvalka iebūvētās komandas var ignorēt, izmantojot funkcijas.

    Sintakse

    Bash funkcijas deklarēšanas sintaksi var definēt divos formātos:

    1. Pirmā metode sākas ar funkcijas nosaukumu, kam seko iekavas. Tā ir visizplatītākā un populārākā metode:

     function_name () { commands } 

    Vienas rindas versiju var minēt šādi:

     function_name () { commands; } 

    2. Otrā metode sākas ar funkcijas rezervēto vārdu, kam seko funkcijas nosaukums:

     function function_name { commands } 

    Vienas rindas versiju var minēt šādi:

     function function_name { commands; } 

    Salīdzinot ar lielāko daļu programmēšanas valodu, Bash funkcijas ir nedaudz ierobežotas. Izpratīsim jēdzienu, izmantojot dažus piemērus:

    Piemērs: 1. metode

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

    Izvade

     Welcome to Javatpoint. 

    Piemērs: 2. metode

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

    Izvade

     Welcome to Javatpoint. 

    Argumentu nodošana

    Tāpat kā lielākā daļa programmēšanas valodu, mēs varam arī nodot argumentus un apstrādāt datus bash funkcijās. Mēs varam ievietot datus funkcijā līdzīgi kā komandrindas argumentus bash skriptam.

    Lai funkcijai bash nodotu neierobežotu skaitu argumentu, tie ir jāievieto tieši aiz funkcijas nosaukuma. Mums ir jāpiemēro atstarpes starp funkcijas nosaukumu un argumentiem. Tā būs arī lieliska izvēle ap argumentiem izmantot dubultpēdiņas, lai novērstu argumentu nepareizu sadali ar atstarpēm.

    Tālāk ir norādīti daži galvenie punkti par argumentu nodošanu bash funkcijām:

    • Dotajiem argumentiem var piekļūt kā $1, $2, $3 ... $n, kas atbilst argumentu pozīcijai aiz funkcijas nosaukuma.
    • Mainīgais $0 tiek rezervēts funkcijas nosaukumam.
    • Mainīgais $# tiek izmantots, lai saglabātu funkcijai piešķirto pozicionālo argumentu/parametru skaitu.
    • Mainīgie $* un $@ tiek izmantoti, lai turētu visus funkcijai dotos argumentus/parametrus.
      • Ja $* tiek izmantots ar dubultpēdiņām (t.i., '$*' ), tā tiek izvērsta līdz vienai virknei, kas atdalīta ar atstarpi. Piemēram, '$1 $2 $n utt'.
      • Ja $@ tiek izmantots ar dubultpēdiņām (t.i., '$@'), tas tiek izvērsts līdz atsevišķai virknei. Piemēram, '$1' '$2' '$n' utt.
      • Ja $* un $# netiek lietoti ar dubultpēdiņām, tie abi ir vienādi.

    Tālāk ir sniegts kods, kas ilustrē procedūru, kā nodot argumentus funkcijām un piekļūt argumentiem funkcijas iekšienē.

    Bash skripts

     #!/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.' 

    Izvade

    Bash funkcijas

    Šajā skriptā mēs esam pievienojuši vērtības 'We', 'welcome', 'you', 'on' un 'Javatpoint' pēc tam, kad esam izsaukuši funkciju_arguments. Šīs vērtības tiek nodotas funkcija_argumenti kā parametri un saglabāti lokālā mainīgajā. Tomēr atšķirībā no citām valodām tulks saglabā nodotās vērtības iepriekš definētos mainīgajos, kas pēc tam tiek nosaukti atbilstoši nodošanas parametru secībai.

    Piemēram,

    'mēs' vārds tiek saglabāts mainīgajā 1 .
    'laipni lūgti' vārds tiek saglabāts mainīgajā 2 .
    'tu' vārds tiek saglabāts mainīgajā 3 .
    'ieslēgts' vārds tiek saglabāts mainīgajā 4 .
    'Javatpoint' vārds tiek saglabāts mainīgajā 5 .

    Mainīgais tvērums

    Globālie mainīgie ir definēti kā mainīgie, kuriem var piekļūt jebkurā skripta vietā neatkarīgi no darbības jomas. Pēc noklusējuma visi mainīgie ir definēti kā globālie mainīgie, pat ja tie ir deklarēti funkcijā. Mēs varam arī izveidot mainīgos kā lokālo mainīgo. Lokālos mainīgos var deklarēt funkcijas pamattekstā ar ?local? atslēgvārdu, kad tie tiek piešķirti pirmo reizi. Tie ir pieejami tikai šīs funkcijas ietvaros. Mēs varam izveidot lokālos mainīgos ar vienādu nosaukumu dažādās funkcijās. Lai pievienotu vietējo mainīgo, mēs varam izmantot šādu sintaksi:

     local var_name= 

    Lai labāk izprastu, kā mainīgo tvērums darbojas programmā Bash Scripting, skatiet šo piemēru:

    Bash skripts

     #!/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.' 

    Izvade

    Bash funkcijas

    Saskaņā ar izvadi, ja funkcijas pamattekstā iestatām lokālo mainīgo ar tādu pašu nosaukumu kā esošajam globālajam mainīgajam, tam būs prioritāte pār globālo mainīgo. Funkcijas ietvaros var modificēt globālos mainīgos.

    Atgriešanas vērtības

    Lielākajai daļai programmēšanas valodu ir ideja par funkciju vērtības atgriešanu. Tas nozīmē, ka funkcijai ir jānosūta dati atpakaļ uz sākotnējo zvanīšanas vietu. Atšķirībā no funkcijām “īstās” programmēšanas valodās, funkcija Bash nesniedz atbalstu vērtības atgriešanai, kad tā tiek izsaukta. Tomēr tie ļauj mums iestatīt atgriešanas statusu, kas ir līdzīgs tam, kā programma vai komanda iziet ar izejas statusu. Kad bash funkcija ir pabeigta, tās atgriešanas vērtība ir funkcijas pēdējā izpildītā priekšraksta statuss. Tas atgriež 0 veiksmes statusam un atgriež decimāldaļu, kas nav nulle, diapazonā no 1–255 — neveiksmes gadījumā.

    Atgriešanas statusu var norādīt, izmantojot 'return' atslēgvārdu, un tas tiek piešķirts mainīgajam $?. Atgriešanas paziņojums pārtrauc funkciju un darbojas kā funkcijas izejas statuss.

    Piemēram, apsveriet šādu kodu:

    Bash skripts

     #!/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 $? 

    Izvade

    Bash funkcijas

    Vēl viena labāka iespēja atgriezt vērtību no funkcijas ir nosūtīt vērtību uz stdout izmantojot atbalss vai printf komandas, kā parādīts zemāk:

    Bash skripts

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

    Izvade

     Welcome to Javatpoint. 

    Pārvaldošās komandas

    Mums ir iespēja ignorēt bash komandas, izveidojot funkciju ar tādu pašu nosaukumu kā komandai, kuru mēs gatavojamies ignorēt. Piemēram, ja mēs vēlamies ignorēt komandu 'echo', tad mums ir jāizveido funkcija ar nosaukumu 'echo'.

    Šī bash komandu ignorēšanas koncepcija var būt noderīga dažos gadījumos, piemēram, ja mēs vēlamies izmantot komandu ar īpašām opcijām. Arī tad, ja mums nepatīk nodrošināt visu komandu ar opcijām vairākas reizes skripta ietvaros. Šādos gadījumos mēs varam ignorēt iebūvēto bash komandu komandai ar opcijām. Tagad sapratīsim Bash Shell skriptēšanas komandu ignorēšanas koncepciju, izmantojot dažus piemērus:

    Piemērs

    Šajā piemērā mēs esam ignorējuši komandu “echo” un komandai “echo” pievienojuši laika zīmogu argumenta veidā.

    Bash skripts

     #!/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.' 

    Izvade

    Bash funkcijas

    Secinājums

    Šajā tēmā mēs demonstrējām Bash funkciju. Bash funkcija tiek uzskatīta par atkārtoti lietojama koda bloku, kas izstrādāts noteiktas darbības veikšanai. Kad tas ir definēts, to var izsaukt vairākas reizes skripta ietvaros.


    tiek rezervēts funkcijas nosaukumam.
  • Mainīgais $# tiek izmantots, lai saglabātu funkcijai piešķirto pozicionālo argumentu/parametru skaitu.
  • Mainīgie $* un $@ tiek izmantoti, lai turētu visus funkcijai dotos argumentus/parametrus.
    • Ja $* tiek izmantots ar dubultpēdiņām (t.i., '$*' ), tā tiek izvērsta līdz vienai virknei, kas atdalīta ar atstarpi. Piemēram, ' $n utt'.
    • Ja $@ tiek izmantots ar dubultpēdiņām (t.i., '$@'), tas tiek izvērsts līdz atsevišķai virknei. Piemēram, '' '' '$n' utt.
    • Ja $* un $# netiek lietoti ar dubultpēdiņām, tie abi ir vienādi.

Tālāk ir sniegts kods, kas ilustrē procedūru, kā nodot argumentus funkcijām un piekļūt argumentiem funkcijas iekšienē.

Bash skripts

 #!/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.' 

Izvade

šķēle java
Bash funkcijas

Šajā skriptā mēs esam pievienojuši vērtības 'We', 'welcome', 'you', 'on' un 'Javatpoint' pēc tam, kad esam izsaukuši funkciju_arguments. Šīs vērtības tiek nodotas funkcija_argumenti kā parametri un saglabāti lokālā mainīgajā. Tomēr atšķirībā no citām valodām tulks saglabā nodotās vērtības iepriekš definētos mainīgajos, kas pēc tam tiek nosaukti atbilstoši nodošanas parametru secībai.

Piemēram,

'mēs' vārds tiek saglabāts mainīgajā 1 .
'laipni lūgti' vārds tiek saglabāts mainīgajā 2 .
'tu' vārds tiek saglabāts mainīgajā 3 .
'ieslēgts' vārds tiek saglabāts mainīgajā 4 .
'Javatpoint' vārds tiek saglabāts mainīgajā 5 .

Mainīgais tvērums

Globālie mainīgie ir definēti kā mainīgie, kuriem var piekļūt jebkurā skripta vietā neatkarīgi no darbības jomas. Pēc noklusējuma visi mainīgie ir definēti kā globālie mainīgie, pat ja tie ir deklarēti funkcijā. Mēs varam arī izveidot mainīgos kā lokālo mainīgo. Lokālos mainīgos var deklarēt funkcijas pamattekstā ar ?local? atslēgvārdu, kad tie tiek piešķirti pirmo reizi. Tie ir pieejami tikai šīs funkcijas ietvaros. Mēs varam izveidot lokālos mainīgos ar vienādu nosaukumu dažādās funkcijās. Lai pievienotu vietējo mainīgo, mēs varam izmantot šādu sintaksi:

 local var_name= 

Lai labāk izprastu, kā mainīgo tvērums darbojas programmā Bash Scripting, skatiet šo piemēru:

Bash skripts

 #!/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.' 

Izvade

Bash funkcijas

Saskaņā ar izvadi, ja funkcijas pamattekstā iestatām lokālo mainīgo ar tādu pašu nosaukumu kā esošajam globālajam mainīgajam, tam būs prioritāte pār globālo mainīgo. Funkcijas ietvaros var modificēt globālos mainīgos.

Atgriešanas vērtības

Lielākajai daļai programmēšanas valodu ir ideja par funkciju vērtības atgriešanu. Tas nozīmē, ka funkcijai ir jānosūta dati atpakaļ uz sākotnējo zvanīšanas vietu. Atšķirībā no funkcijām “īstās” programmēšanas valodās, funkcija Bash nesniedz atbalstu vērtības atgriešanai, kad tā tiek izsaukta. Tomēr tie ļauj mums iestatīt atgriešanas statusu, kas ir līdzīgs tam, kā programma vai komanda iziet ar izejas statusu. Kad bash funkcija ir pabeigta, tās atgriešanas vērtība ir funkcijas pēdējā izpildītā priekšraksta statuss. Tas atgriež 0 veiksmes statusam un atgriež decimāldaļu, kas nav nulle, diapazonā no 1–255 — neveiksmes gadījumā.

Atgriešanas statusu var norādīt, izmantojot 'return' atslēgvārdu, un tas tiek piešķirts mainīgajam $?. Atgriešanas paziņojums pārtrauc funkciju un darbojas kā funkcijas izejas statuss.

java beigas cilpai

Piemēram, apsveriet šādu kodu:

Bash skripts

 #!/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 $? 

Izvade

Bash funkcijas

Vēl viena labāka iespēja atgriezt vērtību no funkcijas ir nosūtīt vērtību uz stdout izmantojot atbalss vai printf komandas, kā parādīts zemāk:

ASV pilsētas nosaukums

Bash skripts

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

Izvade

 Welcome to Javatpoint. 

Pārvaldošās komandas

Mums ir iespēja ignorēt bash komandas, izveidojot funkciju ar tādu pašu nosaukumu kā komandai, kuru mēs gatavojamies ignorēt. Piemēram, ja mēs vēlamies ignorēt komandu 'echo', tad mums ir jāizveido funkcija ar nosaukumu 'echo'.

Šī bash komandu ignorēšanas koncepcija var būt noderīga dažos gadījumos, piemēram, ja mēs vēlamies izmantot komandu ar īpašām opcijām. Arī tad, ja mums nepatīk nodrošināt visu komandu ar opcijām vairākas reizes skripta ietvaros. Šādos gadījumos mēs varam ignorēt iebūvēto bash komandu komandai ar opcijām. Tagad sapratīsim Bash Shell skriptēšanas komandu ignorēšanas koncepciju, izmantojot dažus piemērus:

Piemērs

Šajā piemērā mēs esam ignorējuši komandu “echo” un komandai “echo” pievienojuši laika zīmogu argumenta veidā.

Bash skripts

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

Izvade

Bash funkcijas

Secinājums

Šajā tēmā mēs demonstrējām Bash funkciju. Bash funkcija tiek uzskatīta par atkārtoti lietojama koda bloku, kas izstrādāts noteiktas darbības veikšanai. Kad tas ir definēts, to var izsaukt vairākas reizes skripta ietvaros.