logo

Bash függvények

Ebben a témakörben bemutattuk a bash függvények alapjait és működésüket a bash shell szkriptekben.

A bash scripting funkciói nagyszerű lehetőséget kínálnak a kód újrafelhasználására. A Bash függvény definiálható parancsok halmazaként, amelyek többször is meghívhatók a bash szkripten belül. A bash funkciójának célja, hogy segítsen a szkriptek olvashatóbbá tételében, és elkerülje, hogy ugyanazt a kódot írják újra és újra. Lehetővé teszi a fejlesztők számára, hogy egy bonyolult és hosszadalmas kódot apró részekre bontsanak, amelyek bármikor meghívhatók. A függvények bármikor és többször is meghívhatók, ami lehetővé teszi számunkra a kód újrafelhasználását, optimalizálását és minimalizálását.

Íme néhány kulcsfontosságú pont a bash függvényekkel kapcsolatban:

  • Egy függvényt deklarálni kell a shell szkriptben, mielőtt használni tudjuk.
  • Az argumentumok átadhatók a függvényeknek, és a függvényen belül elérhetők: , stb.
  • A függvényen belül helyi változók rendelhetők hozzá, és az ilyen változók hatóköre csak az adott függvény lesz.
  • A Bash shell beépített parancsai függvényekkel felülírhatók.

Szintaxis

A bash függvény deklarálásának szintaxisa két formátumban definiálható:

1. Az első metódus a függvény nevével kezdődik, amit zárójel követ. Ez a legelőnyösebb és leggyakrabban használt módszer:

 function_name () { commands } 

Az egysoros változat az alábbiak szerint említhető:

 function_name () { commands; } 

2. A második módszer a függvény fenntartott szóval kezdődik, amelyet a függvény neve követ:

absztrakt osztály java-ban
 function function_name { commands } 

Az egysoros változat az alábbiak szerint említhető:

 function function_name { commands; } 

A legtöbb programozási nyelvhez képest a Bash funkciók némileg korlátozottak. Értsük meg a fogalmat néhány példa segítségével:

Példa: 1. módszer

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

Kimenet

 Welcome to Javatpoint. 

Példa: 2. módszer

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

Kimenet

 Welcome to Javatpoint. 

Érvek átadása

Mint a legtöbb programozási nyelv, mi is átadhatjuk az argumentumokat és feldolgozhatjuk az adatokat bash függvényekben. Hasonló módon illeszthetjük be az adatokat a függvénybe, mint a parancssori argumentumokat egy bash szkriptbe.

hány város van az USA-ban

Ha tetszőleges számú argumentumot szeretnénk átadni a bash függvénynek, azokat közvetlenül a függvény neve után kell beszúrnunk. Szóközt kell alkalmaznunk a függvény neve és az argumentumok között. Az is nagyszerű választás, ha dupla idézőjeleket használ az argumentumok körül, hogy elkerülje az argumentumok szóközökkel történő téves értelmezését.

Íme néhány kulcsfontosságú pont az argumentumok bash függvényeknek való átadásával kapcsolatban:

  • A megadott argumentumok , , ... $n néven érhetők el, a függvény neve utáni argumentumok pozíciójának megfelelően.
  • A

    Ebben a témakörben bemutattuk a bash függvények alapjait és működésüket a bash shell szkriptekben.

    A bash scripting funkciói nagyszerű lehetőséget kínálnak a kód újrafelhasználására. A Bash függvény definiálható parancsok halmazaként, amelyek többször is meghívhatók a bash szkripten belül. A bash funkciójának célja, hogy segítsen a szkriptek olvashatóbbá tételében, és elkerülje, hogy ugyanazt a kódot írják újra és újra. Lehetővé teszi a fejlesztők számára, hogy egy bonyolult és hosszadalmas kódot apró részekre bontsanak, amelyek bármikor meghívhatók. A függvények bármikor és többször is meghívhatók, ami lehetővé teszi számunkra a kód újrafelhasználását, optimalizálását és minimalizálását.

    Íme néhány kulcsfontosságú pont a bash függvényekkel kapcsolatban:

    • Egy függvényt deklarálni kell a shell szkriptben, mielőtt használni tudjuk.
    • Az argumentumok átadhatók a függvényeknek, és a függvényen belül elérhetők: $1, $2 stb.
    • A függvényen belül helyi változók rendelhetők hozzá, és az ilyen változók hatóköre csak az adott függvény lesz.
    • A Bash shell beépített parancsai függvényekkel felülírhatók.

    Szintaxis

    A bash függvény deklarálásának szintaxisa két formátumban definiálható:

    1. Az első metódus a függvény nevével kezdődik, amit zárójel követ. Ez a legelőnyösebb és leggyakrabban használt módszer:

     function_name () { commands } 

    Az egysoros változat az alábbiak szerint említhető:

     function_name () { commands; } 

    2. A második módszer a függvény fenntartott szóval kezdődik, amelyet a függvény neve követ:

     function function_name { commands } 

    Az egysoros változat az alábbiak szerint említhető:

     function function_name { commands; } 

    A legtöbb programozási nyelvhez képest a Bash funkciók némileg korlátozottak. Értsük meg a fogalmat néhány példa segítségével:

    Példa: 1. módszer

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

    Kimenet

     Welcome to Javatpoint. 

    Példa: 2. módszer

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

    Kimenet

     Welcome to Javatpoint. 

    Érvek átadása

    Mint a legtöbb programozási nyelv, mi is átadhatjuk az argumentumokat és feldolgozhatjuk az adatokat bash függvényekben. Hasonló módon illeszthetjük be az adatokat a függvénybe, mint a parancssori argumentumokat egy bash szkriptbe.

    Ha tetszőleges számú argumentumot szeretnénk átadni a bash függvénynek, azokat közvetlenül a függvény neve után kell beszúrnunk. Szóközt kell alkalmaznunk a függvény neve és az argumentumok között. Az is nagyszerű választás, ha dupla idézőjeleket használ az argumentumok körül, hogy elkerülje az argumentumok szóközökkel történő téves értelmezését.

    Íme néhány kulcsfontosságú pont az argumentumok bash függvényeknek való átadásával kapcsolatban:

    • A megadott argumentumok $1, $2, $3 ... $n néven érhetők el, a függvény neve utáni argumentumok pozíciójának megfelelően.
    • A $0 változó a függvény nevéhez van fenntartva.
    • A $# változó a függvénynek adott pozíciós argumentum/paraméter számának tárolására szolgál.
    • A $* és $@ változók a függvénynek adott összes argumentum/paraméter tárolására szolgálnak.
      • Ha a $* karaktert dupla idézőjelekkel használja (azaz '$*' ), akkor egyetlen karakterláncra bővül, amelyet szóközzel választanak el. Például: '$1$2$n stb'.
      • Ha a $@-t dupla idézőjelekkel használjuk (azaz '$@' ), akkor külön karakterláncra bővül. Például: '$1' '$2' '$n' stb.
      • Ha a $* és a $# nem szerepel a dupla idézőjelekkel, akkor mindkettő ugyanaz.

    A következő kód azt szemlélteti, hogyan lehet argumentumokat adni a függvényeknek, és hogyan lehet hozzáférni a függvényen belüli argumentumokhoz.

    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.' 

    Kimenet

    Bash függvények

    Ebben a szkriptben hozzáadtuk a „We”, „welcome”, „you”, „on” és „Javatpoint” értékeket, miután meghívtuk a function_arguments-t. Ezeket az értékeket átadják a függvény_argumentumok paraméterként és egy helyi változóban tároljuk. Más nyelvektől eltérően azonban az értelmező az átadott értékeket előre definiált változókba tárolja, amelyeket aztán az átadási paraméterek sorrendjének megfelelően nevez el.

    Például,

    'Mi' szó kerül a változóba 1 .
    'Üdvözöljük' szó kerül a változóba 2 .
    'te' szó kerül a változóba 3 .
    'tovább' szó kerül a változóba 4 .
    'Javatpoint' szó kerül a változóba 5 .

    Változó hatókör

    A globális változók olyan változók, amelyek a szkripten belül bárhol elérhetők, függetlenül a hatókörtől. Alapértelmezés szerint az összes változó globális változóként van definiálva, még akkor is, ha a függvényen belül deklarálva vannak. Lokális változóként is létrehozhatunk változókat. A lokális változók a függvénytörzsön belül deklarálhatók a ?local? kulcsszót, amikor először rendelik hozzá őket. Csak ezen a funkción belül érhetők el. Különböző függvényekben létrehozhatunk azonos nevű helyi változókat. Helyi változó hozzáadásához a következő szintaxist használhatjuk:

     local var_name= 

    Ha jobban szeretné megérteni, hogyan működik a változók hatóköre a Bash Scriptingben, nézze meg a következő példát:

    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.' 

    Kimenet

    Bash függvények

    Kimenet szerint, ha a függvénytörzsben beállítunk egy lokális változót, amelynek neve megegyezik egy meglévő globális változóval, akkor az elsőbbséget élvez a globális változóval szemben. A globális változók a függvényen belül módosíthatók.

    Visszatérési értékek

    A legtöbb programozási nyelv rendelkezik azzal a koncepcióval, hogy értéket ad vissza a függvényekhez. Ez azt jelenti, hogy a funkciónak vissza kell küldenie az adatokat az eredeti hívási helyre. Ellentétben a „valódi” programozási nyelvek függvényeivel, a Bash függvény nem támogatja az érték visszaadását, amikor hívják. Lehetővé teszik azonban, hogy beállítsunk egy visszatérési állapotot, amely hasonló ahhoz, ahogy egy program vagy parancs kilépési állapottal lép ki. Amikor egy bash függvény befejeződik, a visszatérési értéke a függvényben utoljára végrehajtott utasítás állapota. 0-t ad vissza a sikeres állapothoz, és nem nulla decimális számot az 1-255 tartományban, ha sikertelen.

    A visszatérési állapot a 'return' kulcsszóval jelezhető, és a $? változóhoz van rendelve. A return utasítás leállítja a függvényt, és a függvény kilépési állapotaként működik.

    Például, vegye figyelembe a következő kódot:

    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 $? 

    Kimenet

    Bash függvények

    Egy másik jobb lehetőség egy függvény értékének visszaadására, ha elküldi az értéket a következőre stdout segítségével visszhang vagy printf parancsokat, az alábbiak szerint:

    Bash Script

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

    Kimenet

     Welcome to Javatpoint. 

    Felülbíráló parancsok

    Lehetőségünk van felülbírálni a bash parancsokat úgy, hogy létrehozunk egy függvényt, amelynek neve megegyezik a felülbírálni kívánt paranccsal. Például, ha felül akarjuk írni az 'echo' parancsot, akkor létre kell hoznunk egy 'echo' nevű függvényt.

    A bash parancsok felülbírálásának ez a koncepciója hasznos lehet bizonyos forgatókönyvekben, például amikor egy parancsot konkrét opciókkal akarunk használni. Akkor is, ha nem szeretjük a teljes parancsot opciókkal ellátni a szkripten belül többször is. Ilyen esetekben felülírhatjuk a parancs beépített bash parancsát opciókkal. Most értsük meg a Bash Shell Scripting parancsainak felülbírálásának koncepcióját néhány példa segítségével:

    Példa

    Ebben a példában felülírtuk az „echo” parancsot, és az „echo” parancshoz hozzáadtuk az időbélyeget az argumentum formájában.

    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.' 

    Kimenet

    Bash függvények

    Következtetés

    Ebben a témában bemutattuk a Bash funkciót. A Bash függvény egy adott művelet végrehajtására kifejlesztett újrafelhasználható kód blokkjának tekinthető. A definiálás után többször is meghívható egy szkripten belül.


    változó a függvény nevéhez van fenntartva.
  • A $# változó a függvénynek adott pozíciós argumentum/paraméter számának tárolására szolgál.
  • A $* és $@ változók a függvénynek adott összes argumentum/paraméter tárolására szolgálnak.
    • Ha a $* karaktert dupla idézőjelekkel használja (azaz '$*' ), akkor egyetlen karakterláncra bővül, amelyet szóközzel választanak el. Például: '$n stb'.
    • Ha a $@-t dupla idézőjelekkel használjuk (azaz '$@' ), akkor külön karakterláncra bővül. Például: '' '' '$n' stb.
    • Ha a $* és a $# nem szerepel a dupla idézőjelekkel, akkor mindkettő ugyanaz.

A következő kód azt szemlélteti, hogyan lehet argumentumokat adni a függvényeknek, és hogyan lehet hozzáférni a függvényen belüli argumentumokhoz.

linux hogyan kell átnevezni egy könyvtárat

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.' 

Kimenet

Bash függvények

Ebben a szkriptben hozzáadtuk a „We”, „welcome”, „you”, „on” és „Javatpoint” értékeket, miután meghívtuk a function_arguments-t. Ezeket az értékeket átadják a függvény_argumentumok paraméterként és egy helyi változóban tároljuk. Más nyelvektől eltérően azonban az értelmező az átadott értékeket előre definiált változókba tárolja, amelyeket aztán az átadási paraméterek sorrendjének megfelelően nevez el.

Például,

'Mi' szó kerül a változóba 1 .
'Üdvözöljük' szó kerül a változóba 2 .
'te' szó kerül a változóba 3 .
'tovább' szó kerül a változóba 4 .
'Javatpoint' szó kerül a változóba 5 .

Változó hatókör

A globális változók olyan változók, amelyek a szkripten belül bárhol elérhetők, függetlenül a hatókörtől. Alapértelmezés szerint az összes változó globális változóként van definiálva, még akkor is, ha a függvényen belül deklarálva vannak. Lokális változóként is létrehozhatunk változókat. A lokális változók a függvénytörzsön belül deklarálhatók a ?local? kulcsszót, amikor először rendelik hozzá őket. Csak ezen a funkción belül érhetők el. Különböző függvényekben létrehozhatunk azonos nevű helyi változókat. Helyi változó hozzáadásához a következő szintaxist használhatjuk:

 local var_name= 

Ha jobban szeretné megérteni, hogyan működik a változók hatóköre a Bash Scriptingben, nézze meg a következő példát:

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.' 

Kimenet

linkelt lista
Bash függvények

Kimenet szerint, ha a függvénytörzsben beállítunk egy lokális változót, amelynek neve megegyezik egy meglévő globális változóval, akkor az elsőbbséget élvez a globális változóval szemben. A globális változók a függvényen belül módosíthatók.

Visszatérési értékek

A legtöbb programozási nyelv rendelkezik azzal a koncepcióval, hogy értéket ad vissza a függvényekhez. Ez azt jelenti, hogy a funkciónak vissza kell küldenie az adatokat az eredeti hívási helyre. Ellentétben a „valódi” programozási nyelvek függvényeivel, a Bash függvény nem támogatja az érték visszaadását, amikor hívják. Lehetővé teszik azonban, hogy beállítsunk egy visszatérési állapotot, amely hasonló ahhoz, ahogy egy program vagy parancs kilépési állapottal lép ki. Amikor egy bash függvény befejeződik, a visszatérési értéke a függvényben utoljára végrehajtott utasítás állapota. 0-t ad vissza a sikeres állapothoz, és nem nulla decimális számot az 1-255 tartományban, ha sikertelen.

A visszatérési állapot a 'return' kulcsszóval jelezhető, és a $? változóhoz van rendelve. A return utasítás leállítja a függvényt, és a függvény kilépési állapotaként működik.

Például, vegye figyelembe a következő kódot:

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 $? 

Kimenet

Bash függvények

Egy másik jobb lehetőség egy függvény értékének visszaadására, ha elküldi az értéket a következőre stdout segítségével visszhang vagy printf parancsokat, az alábbiak szerint:

leképezés gépírással

Bash Script

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

Kimenet

 Welcome to Javatpoint. 

Felülbíráló parancsok

Lehetőségünk van felülbírálni a bash parancsokat úgy, hogy létrehozunk egy függvényt, amelynek neve megegyezik a felülbírálni kívánt paranccsal. Például, ha felül akarjuk írni az 'echo' parancsot, akkor létre kell hoznunk egy 'echo' nevű függvényt.

A bash parancsok felülbírálásának ez a koncepciója hasznos lehet bizonyos forgatókönyvekben, például amikor egy parancsot konkrét opciókkal akarunk használni. Akkor is, ha nem szeretjük a teljes parancsot opciókkal ellátni a szkripten belül többször is. Ilyen esetekben felülírhatjuk a parancs beépített bash parancsát opciókkal. Most értsük meg a Bash Shell Scripting parancsainak felülbírálásának koncepcióját néhány példa segítségével:

Példa

Ebben a példában felülírtuk az „echo” parancsot, és az „echo” parancshoz hozzáadtuk az időbélyeget az argumentum formájában.

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.' 

Kimenet

Bash függvények

Következtetés

Ebben a témában bemutattuk a Bash funkciót. A Bash függvény egy adott művelet végrehajtására kifejlesztett újrafelhasználható kód blokkjának tekinthető. A definiálás után többször is meghívható egy szkripten belül.