logo

Bash funkcie

V tejto téme sme demonštrovali základy bash funkcií a ako fungujú v bash shell skriptovaní.

Funkcie v skriptovaní bash sú skvelou možnosťou opätovného použitia kódu. Funkciu Bash možno definovať ako množinu príkazov, ktoré možno v rámci skriptu bash volať niekoľkokrát. Účelom funkcie v bash je pomôcť vám urobiť vaše skripty čitateľnejšími a vyhnúť sa opakovanému písaniu rovnakého kódu. Umožňuje tiež vývojárom rozložiť komplikovaný a zdĺhavý kód na malé časti, ktoré môžu byť volané kedykoľvek je to potrebné. Funkcie je možné volať kedykoľvek a opakovane, čo nám umožní opätovne použiť, optimalizovať a minimalizovať kód.

Nasleduje niekoľko kľúčových bodov o funkciách bash:

  • Funkcia musí byť deklarovaná v skripte shellu, aby sme ju mohli použiť.
  • Argumenty možno odovzdať funkciám a pristupovať k nim vo funkcii ako , atď.
  • V rámci funkcie je možné priradiť lokálne premenné a rozsahom takýchto premenných bude len táto konkrétna funkcia.
  • Vstavané príkazy shellu Bash možno prepísať pomocou funkcií.

Syntax

Syntax pre deklaráciu bash funkcie možno definovať v dvoch formátoch:

1. Prvá metóda začína názvom funkcie, za ktorým nasledujú zátvorky. Je to najobľúbenejšia a najpoužívanejšia metóda:

 function_name () { commands } 

Jednoriadková verzia môže byť uvedená nižšie:

 function_name () { commands; } 

2. Druhá metóda začína vyhradeným slovom funkcie, za ktorým nasleduje názov funkcie:

c štruktúra v štruktúre
 function function_name { commands } 

Jednoriadková verzia môže byť uvedená nižšie:

 function function_name { commands; } 

V porovnaní s väčšinou programovacích jazykov sú funkcie Bash trochu obmedzené. Poďme pochopiť tento koncept pomocou niekoľkých príkladov:

Príklad: Metóda 1

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

Výkon

 Welcome to Javatpoint. 

Príklad: Metóda 2

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

Výkon

 Welcome to Javatpoint. 

Podávanie argumentov

Rovnako ako väčšina programovacích jazykov, môžeme tiež odovzdať argumenty a spracovať údaje vo funkciách bash. Dáta do funkcie môžeme vložiť podobným spôsobom ako argumenty príkazového riadku odovzdávania do bash skriptu.

čo je mac os

Aby sme funkcii bash odovzdali ľubovoľný počet argumentov, musíme ich vložiť hneď za názov funkcie. Medzi názvom funkcie a argumentmi musíme použiť medzery. Skvelou voľbou bude aj použitie dvojitých úvodzoviek okolo argumentov, aby sa zabránilo nesprávnemu spracovaniu argumentov s medzerami.

Nasleduje niekoľko kľúčových bodov o odovzdávaní argumentov funkciám bash:

  • K daným argumentom sa pristupuje ako , , ... $n, čo zodpovedá pozícii argumentov za názvom funkcie.
  • Premenná

    V tejto téme sme demonštrovali základy bash funkcií a ako fungujú v bash shell skriptovaní.

    Funkcie v skriptovaní bash sú skvelou možnosťou opätovného použitia kódu. Funkciu Bash možno definovať ako množinu príkazov, ktoré možno v rámci skriptu bash volať niekoľkokrát. Účelom funkcie v bash je pomôcť vám urobiť vaše skripty čitateľnejšími a vyhnúť sa opakovanému písaniu rovnakého kódu. Umožňuje tiež vývojárom rozložiť komplikovaný a zdĺhavý kód na malé časti, ktoré môžu byť volané kedykoľvek je to potrebné. Funkcie je možné volať kedykoľvek a opakovane, čo nám umožní opätovne použiť, optimalizovať a minimalizovať kód.

    Nasleduje niekoľko kľúčových bodov o funkciách bash:

    • Funkcia musí byť deklarovaná v skripte shellu, aby sme ju mohli použiť.
    • Argumenty možno odovzdať funkciám a pristupovať k nim vo funkcii ako $1, $2 atď.
    • V rámci funkcie je možné priradiť lokálne premenné a rozsahom takýchto premenných bude len táto konkrétna funkcia.
    • Vstavané príkazy shellu Bash možno prepísať pomocou funkcií.

    Syntax

    Syntax pre deklaráciu bash funkcie možno definovať v dvoch formátoch:

    1. Prvá metóda začína názvom funkcie, za ktorým nasledujú zátvorky. Je to najobľúbenejšia a najpoužívanejšia metóda:

     function_name () { commands } 

    Jednoriadková verzia môže byť uvedená nižšie:

     function_name () { commands; } 

    2. Druhá metóda začína vyhradeným slovom funkcie, za ktorým nasleduje názov funkcie:

     function function_name { commands } 

    Jednoriadková verzia môže byť uvedená nižšie:

     function function_name { commands; } 

    V porovnaní s väčšinou programovacích jazykov sú funkcie Bash trochu obmedzené. Poďme pochopiť tento koncept pomocou niekoľkých príkladov:

    Príklad: Metóda 1

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

    Výkon

     Welcome to Javatpoint. 

    Príklad: Metóda 2

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

    Výkon

     Welcome to Javatpoint. 

    Podávanie argumentov

    Rovnako ako väčšina programovacích jazykov, môžeme tiež odovzdať argumenty a spracovať údaje vo funkciách bash. Dáta do funkcie môžeme vložiť podobným spôsobom ako argumenty príkazového riadku odovzdávania do bash skriptu.

    Aby sme funkcii bash odovzdali ľubovoľný počet argumentov, musíme ich vložiť hneď za názov funkcie. Medzi názvom funkcie a argumentmi musíme použiť medzery. Skvelou voľbou bude aj použitie dvojitých úvodzoviek okolo argumentov, aby sa zabránilo nesprávnemu spracovaniu argumentov s medzerami.

    Nasleduje niekoľko kľúčových bodov o odovzdávaní argumentov funkciám bash:

    • K daným argumentom sa pristupuje ako $1, $2, $3 ... $n, čo zodpovedá pozícii argumentov za názvom funkcie.
    • Premenná $0 je rezervovaná pre názov funkcie.
    • Premenná $# sa používa na uloženie počtu pozičných argumentov/parametrov zadaných funkcii.
    • Premenné $* a $@ sa používajú na uchovávanie všetkých argumentov/parametrov zadaných funkcii.
      • Keď sa $* použije s dvojitými úvodzovkami (t. j. '$*' ), rozšíri sa na jeden reťazec oddelený medzerou. Napríklad '$1 $2 $n atď'.
      • Keď sa $@ použije s dvojitými úvodzovkami (t. j. '$@' ), rozšíri sa na samostatný reťazec. Napríklad '$1' '$2' '$n' atď.
      • Keď $* a $# nie sú použité s dvojitými úvodzovkami, obe sú rovnaké.

    Nasleduje kód, ktorý ilustruje postup odovzdávania argumentov funkciám a prístupu k argumentom vo funkcii.

    Bash skript

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

    Výkon

    Bash funkcie

    Do tohto skriptu sme pridali hodnoty 'We', 'welcome', 'you', 'on' a 'Javatpoint' potom, čo sme zavolali argumenty funkcie. Tieto hodnoty sa prenášajú do argumenty_funkcie ako parametre a uložené v lokálnej premennej. Na rozdiel od iných jazykov však tlmočník ukladá odovzdané hodnoty do preddefinovaných premenných, ktoré sú následne pomenované podľa postupnosti odovzdávania parametrov.

    Napríklad,

    'my' slovo sa uloží do premennej 1 .
    'vitajte' slovo sa uloží do premennej 2 .
    'ty' slovo sa uloží do premennej 3 .
    'zap' slovo sa uloží do premennej 4 .
    „Javatpoint“ slovo sa uloží do premennej 5 .

    Variabilný rozsah

    Globálne premenné sú definované ako premenné, ku ktorým je možné pristupovať kdekoľvek v rámci skriptu bez ohľadu na rozsah. Štandardne sú všetky premenné definované ako globálne premenné, aj keď sú deklarované vo funkcii. Premenné môžeme vytvárať aj ako lokálnu premennú. Lokálne premenné môžu byť deklarované v tele funkcie pomocou ?local? pri prvom priradení. Sú prístupné iba v rámci tejto funkcie. V rôznych funkciách môžeme vytvárať lokálne premenné s rovnakým názvom. Na pridanie lokálnej premennej môžeme použiť nasledujúcu syntax:

     local var_name= 

    Ak chcete lepšie pochopiť, ako funguje rozsah premenných v skriptovaní Bash, pozrite si nasledujúci príklad:

    Bash skript

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

    Výkon

    Bash funkcie

    Podľa výstupu, ak nastavíme lokálnu premennú v tele funkcie s rovnakým názvom ako existujúca globálna premenná, potom bude mať prednosť pred globálnou premennou. Globálne premenné je možné v rámci funkcie upravovať.

    Návratové hodnoty

    Väčšina programovacích jazykov má koncepciu vrátenia hodnoty pre funkcie. To znamená, že funkcia musí poslať dáta späť na pôvodné miesto volania. Na rozdiel od funkcií v „skutočných“ programovacích jazykoch funkcia Bash neposkytuje podporu na vrátenie hodnoty, keď je volaná. Umožňujú nám však nastaviť návratový stav, ktorý je podobný tomu, ako ukončí program alebo príkaz so stavom ukončenia. Keď sa funkcia bash dokončí, jej návratovou hodnotou je stav posledného vykonaného príkazu vo funkcii. V prípade úspešného stavu vráti 0 a v prípade zlyhania vráti nenulové desiatkové číslo v rozsahu 1-255.

    Návratový stav možno indikovať pomocou kľúčového slova „návrat“ a je priradený k premennej $?. Príkaz return ukončí funkciu a funguje ako stav ukončenia funkcie.

    Napríklad, zvážte nasledujúci kód:

    Bash skript

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

    Výkon

    Bash funkcie

    Ďalšou lepšou možnosťou na vrátenie hodnoty z funkcie je odoslanie hodnoty stdout použitím ozvena alebo printf príkazy, ako je uvedené nižšie:

    Bash skript

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

    Výkon

     Welcome to Javatpoint. 

    Prevažujúce príkazy

    Máme možnosť prepísať príkazy bash vytvorením funkcie s rovnakým názvom ako príkaz, ktorý sa chystáme prepísať. Napríklad, ak chceme prepísať príkaz 'echo', musíme vytvoriť funkciu s názvom 'echo'.

    Tento koncept prepísania príkazov bash môže byť užitočný v niektorých scenároch, napríklad keď chceme použiť príkaz so špecifickými možnosťami. Tiež, keď sa nám nepáči poskytnúť celému príkazu niekoľko možností v rámci skriptu. V takýchto prípadoch môžeme prepísať vstavaný príkaz bash pre príkaz s možnosťami. Teraz pochopme koncept prepísania príkazov v Bash Shell Scripting pomocou niekoľkých príkladov:

    Príklad

    V tomto príklade sme prepísali príkaz 'echo' a pridali časovú pečiatku vo forme argumentu k príkazu 'echo'.

    Bash skript

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

    Výkon

    Bash funkcie

    Záver

    V tejto téme sme demonštrovali funkciu Bash. Funkcia Bash sa považuje za blok opätovne použiteľného kódu vyvinutého na vykonanie špecifickej operácie. Akonáhle je definovaný, môže byť volaný niekoľkokrát v rámci skriptu.


    je rezervovaná pre názov funkcie.
  • Premenná $# sa používa na uloženie počtu pozičných argumentov/parametrov zadaných funkcii.
  • Premenné $* a $@ sa používajú na uchovávanie všetkých argumentov/parametrov zadaných funkcii.
    • Keď sa $* použije s dvojitými úvodzovkami (t. j. '$*' ), rozšíri sa na jeden reťazec oddelený medzerou. Napríklad ' $n atď'.
    • Keď sa $@ použije s dvojitými úvodzovkami (t. j. '$@' ), rozšíri sa na samostatný reťazec. Napríklad '' '' '$n' atď.
    • Keď $* a $# nie sú použité s dvojitými úvodzovkami, obe sú rovnaké.

Nasleduje kód, ktorý ilustruje postup odovzdávania argumentov funkciám a prístupu k argumentom vo funkcii.

Bash skript

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

Výkon

Bash funkcie

Do tohto skriptu sme pridali hodnoty 'We', 'welcome', 'you', 'on' a 'Javatpoint' potom, čo sme zavolali argumenty funkcie. Tieto hodnoty sa prenášajú do argumenty_funkcie ako parametre a uložené v lokálnej premennej. Na rozdiel od iných jazykov však tlmočník ukladá odovzdané hodnoty do preddefinovaných premenných, ktoré sú následne pomenované podľa postupnosti odovzdávania parametrov.

Napríklad,

'my' slovo sa uloží do premennej 1 .
'vitajte' slovo sa uloží do premennej 2 .
'ty' slovo sa uloží do premennej 3 .
'zap' slovo sa uloží do premennej 4 .
„Javatpoint“ slovo sa uloží do premennej 5 .

vyhľadávač a príklady

Variabilný rozsah

Globálne premenné sú definované ako premenné, ku ktorým je možné pristupovať kdekoľvek v rámci skriptu bez ohľadu na rozsah. Štandardne sú všetky premenné definované ako globálne premenné, aj keď sú deklarované vo funkcii. Premenné môžeme vytvárať aj ako lokálnu premennú. Lokálne premenné môžu byť deklarované v tele funkcie pomocou ?local? pri prvom priradení. Sú prístupné iba v rámci tejto funkcie. V rôznych funkciách môžeme vytvárať lokálne premenné s rovnakým názvom. Na pridanie lokálnej premennej môžeme použiť nasledujúcu syntax:

 local var_name= 

Ak chcete lepšie pochopiť, ako funguje rozsah premenných v skriptovaní Bash, pozrite si nasledujúci príklad:

Bash skript

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

Výkon

Bash funkcie

Podľa výstupu, ak nastavíme lokálnu premennú v tele funkcie s rovnakým názvom ako existujúca globálna premenná, potom bude mať prednosť pred globálnou premennou. Globálne premenné je možné v rámci funkcie upravovať.

Návratové hodnoty

Väčšina programovacích jazykov má koncepciu vrátenia hodnoty pre funkcie. To znamená, že funkcia musí poslať dáta späť na pôvodné miesto volania. Na rozdiel od funkcií v „skutočných“ programovacích jazykoch funkcia Bash neposkytuje podporu na vrátenie hodnoty, keď je volaná. Umožňujú nám však nastaviť návratový stav, ktorý je podobný tomu, ako ukončí program alebo príkaz so stavom ukončenia. Keď sa funkcia bash dokončí, jej návratovou hodnotou je stav posledného vykonaného príkazu vo funkcii. V prípade úspešného stavu vráti 0 a v prípade zlyhania vráti nenulové desiatkové číslo v rozsahu 1-255.

Návratový stav možno indikovať pomocou kľúčového slova „návrat“ a je priradený k premennej $?. Príkaz return ukončí funkciu a funguje ako stav ukončenia funkcie.

Napríklad, zvážte nasledujúci kód:

ako otvoriť súbor pomocou java

Bash skript

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

Výkon

Bash funkcie

Ďalšou lepšou možnosťou na vrátenie hodnoty z funkcie je odoslanie hodnoty stdout použitím ozvena alebo printf príkazy, ako je uvedené nižšie:

čo je hashset v jave

Bash skript

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

Výkon

 Welcome to Javatpoint. 

Prevažujúce príkazy

Máme možnosť prepísať príkazy bash vytvorením funkcie s rovnakým názvom ako príkaz, ktorý sa chystáme prepísať. Napríklad, ak chceme prepísať príkaz 'echo', musíme vytvoriť funkciu s názvom 'echo'.

Tento koncept prepísania príkazov bash môže byť užitočný v niektorých scenároch, napríklad keď chceme použiť príkaz so špecifickými možnosťami. Tiež, keď sa nám nepáči poskytnúť celému príkazu niekoľko možností v rámci skriptu. V takýchto prípadoch môžeme prepísať vstavaný príkaz bash pre príkaz s možnosťami. Teraz pochopme koncept prepísania príkazov v Bash Shell Scripting pomocou niekoľkých príkladov:

Príklad

V tomto príklade sme prepísali príkaz 'echo' a pridali časovú pečiatku vo forme argumentu k príkazu 'echo'.

Bash skript

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

Výkon

Bash funkcie

Záver

V tejto téme sme demonštrovali funkciu Bash. Funkcia Bash sa považuje za blok opätovne použiteľného kódu vyvinutého na vykonanie špecifickej operácie. Akonáhle je definovaný, môže byť volaný niekoľkokrát v rámci skriptu.