logo

Bash funkce

V tomto tématu jsme demonstrovali základy bash funkcí a jak fungují ve skriptování bash shell.

Funkce ve skriptování bash jsou skvělou možností pro opětovné použití kódu. Bash funkci lze definovat jako sadu příkazů, které lze v bash skriptu volat několikrát. Účelem funkce v bash je pomoci vám učinit vaše skripty čitelnějšími a vyhnout se opakovanému psaní stejného kódu. Umožňuje také vývojářům rozdělit komplikovaný a zdlouhavý kód na malé části, které lze volat, kdykoli je potřeba. Funkce lze volat kdykoli a opakovaně, což nám umožní znovu použít, optimalizovat a minimalizovat kód.

Níže jsou uvedeny některé klíčové body o funkcích bash:

  • Funkce musí být deklarována ve skriptu shellu, než ji můžeme použít.
  • Argumenty lze předávat funkcím a přistupovat k nim uvnitř funkce jako , atd.
  • V rámci funkce lze přiřadit lokální proměnné a rozsahem těchto proměnných bude pouze tato konkrétní funkce.
  • Vestavěné příkazy prostředí Bash lze přepsat pomocí funkcí.

Syntax

Syntaxi pro deklaraci bash funkce lze definovat ve dvou formátech:

1. První metoda začíná názvem funkce, za nímž následují závorky. Je to nejpreferovanější a běžně používaná metoda:

 function_name () { commands } 

Jednořádkovou verzi lze zmínit takto:

 function_name () { commands; } 

2. Druhá metoda začíná vyhrazeným slovem funkce, za nímž následuje název funkce:

přejmenovat v adresáři linux
 function function_name { commands } 

Jednořádkovou verzi lze zmínit takto:

 function function_name { commands; } 

Ve srovnání s většinou programovacích jazyků jsou funkce Bash poněkud omezené. Pojďme pochopit tento koncept pomocí několika příkladů:

Příklad: Metoda 1

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

Výstup

 Welcome to Javatpoint. 

Příklad: Metoda 2

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

Výstup

 Welcome to Javatpoint. 

Předávání argumentů

Jako většina programovacích jazyků můžeme také předávat argumenty a zpracovávat data ve funkcích bash. Data můžeme do funkce vložit podobným způsobem jako předávání argumentů příkazového řádku do bash skriptu.

aritmeticko logická jednotka

Abychom funkci bash předali libovolný počet argumentů, musíme je vložit hned za název funkce. Mezi názvem funkce a argumenty musíme použít mezery. Skvělou volbou bude také použití dvojitých uvozovek kolem argumentů, aby se zabránilo nesprávnému zpracování argumentů s mezerami.

Níže jsou uvedeny některé klíčové body o předávání argumentů funkcím bash:

  • K daným argumentům se přistupuje jako , , ... $n, což odpovídá pozici argumentů za názvem funkce.
  • Proměnná

    V tomto tématu jsme demonstrovali základy bash funkcí a jak fungují ve skriptování bash shell.

    Funkce ve skriptování bash jsou skvělou možností pro opětovné použití kódu. Bash funkci lze definovat jako sadu příkazů, které lze v bash skriptu volat několikrát. Účelem funkce v bash je pomoci vám učinit vaše skripty čitelnějšími a vyhnout se opakovanému psaní stejného kódu. Umožňuje také vývojářům rozdělit komplikovaný a zdlouhavý kód na malé části, které lze volat, kdykoli je potřeba. Funkce lze volat kdykoli a opakovaně, což nám umožní znovu použít, optimalizovat a minimalizovat kód.

    Níže jsou uvedeny některé klíčové body o funkcích bash:

    • Funkce musí být deklarována ve skriptu shellu, než ji můžeme použít.
    • Argumenty lze předávat funkcím a přistupovat k nim uvnitř funkce jako $1, $2 atd.
    • V rámci funkce lze přiřadit lokální proměnné a rozsahem těchto proměnných bude pouze tato konkrétní funkce.
    • Vestavěné příkazy prostředí Bash lze přepsat pomocí funkcí.

    Syntax

    Syntaxi pro deklaraci bash funkce lze definovat ve dvou formátech:

    1. První metoda začíná názvem funkce, za nímž následují závorky. Je to nejpreferovanější a běžně používaná metoda:

     function_name () { commands } 

    Jednořádkovou verzi lze zmínit takto:

     function_name () { commands; } 

    2. Druhá metoda začíná vyhrazeným slovem funkce, za nímž následuje název funkce:

     function function_name { commands } 

    Jednořádkovou verzi lze zmínit takto:

     function function_name { commands; } 

    Ve srovnání s většinou programovacích jazyků jsou funkce Bash poněkud omezené. Pojďme pochopit tento koncept pomocí několika příkladů:

    Příklad: Metoda 1

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

    Výstup

     Welcome to Javatpoint. 

    Příklad: Metoda 2

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

    Výstup

     Welcome to Javatpoint. 

    Předávání argumentů

    Jako většina programovacích jazyků můžeme také předávat argumenty a zpracovávat data ve funkcích bash. Data můžeme do funkce vložit podobným způsobem jako předávání argumentů příkazového řádku do bash skriptu.

    Abychom funkci bash předali libovolný počet argumentů, musíme je vložit hned za název funkce. Mezi názvem funkce a argumenty musíme použít mezery. Skvělou volbou bude také použití dvojitých uvozovek kolem argumentů, aby se zabránilo nesprávnému zpracování argumentů s mezerami.

    Níže jsou uvedeny některé klíčové body o předávání argumentů funkcím bash:

    • K daným argumentům se přistupuje jako $1, $2, $3 ... $n, což odpovídá pozici argumentů za názvem funkce.
    • Proměnná $0 je rezervována pro název funkce.
    • Proměnná $# se používá k uložení počtu pozičních argumentů/parametrů přidělených funkci.
    • Proměnné $* a $@ se používají k uložení všech argumentů/parametrů zadaných funkci.
      • Když se $* použije s dvojitými uvozovkami (tj. '$*' ), rozšíří se na jeden řetězec oddělený mezerou. Například '$1 $2 $n atd'.
      • Když se $@ použije s dvojitými uvozovkami (tj. '$@' ), rozšíří se na samostatný řetězec. Například '$1' '$2' '$n' atd.
      • Když $* a $# nejsou použity s dvojitými uvozovkami, jsou obě stejné.

    Následuje kód, který ilustruje postup předávání argumentů funkcím a přístupu k argumentům uvnitř funkce.

    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ýstup

    Bash funkce

    V tomto skriptu jsme přidali hodnoty 'We', 'welcome', 'you', 'on' a 'Javatpoint' poté, co jsme zavolali argumenty funkce. Tyto hodnoty jsou předány do argumenty funkce jako parametry a uloženy v lokální proměnné. Na rozdíl od jiných jazyků však interpret ukládá předané hodnoty do předdefinovaných proměnných, které jsou pak pojmenovány podle sekvence předávaných parametrů.

    Například,

    'My' slovo je uloženo do proměnné 1 .
    'Vítejte' slovo je uloženo do proměnné 2 .
    'vy' slovo je uloženo do proměnné 3 .
    'na' slovo je uloženo do proměnné 4 .
    'Javatpoint' slovo je uloženo do proměnné 5 .

    Variabilní rozsah

    Globální proměnné jsou definovány jako proměnné, ke kterým lze přistupovat kdekoli ve skriptu bez ohledu na rozsah. Ve výchozím nastavení jsou všechny proměnné definovány jako globální proměnné, i když jsou deklarovány uvnitř funkce. Můžeme také vytvářet proměnné jako lokální proměnnou. Lokální proměnné lze deklarovat v těle funkce pomocí ?local? klíčové slovo, když jsou přiřazeny poprvé. Jsou přístupné pouze uvnitř této funkce. Můžeme vytvářet lokální proměnné se stejným názvem v různých funkcích. Chcete-li přidat lokální proměnnou, můžeme použít následující syntaxi:

     local var_name= 

    Chcete-li lépe porozumět tomu, jak funguje rozsah proměnných v Bash Scripting, podívejte se na následující pří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ýstup

    Bash funkce

    Podle výstupu, pokud nastavíme lokální proměnnou v těle funkce se stejným názvem jako existující globální proměnná, bude mít přednost před globální proměnnou. Globální proměnné lze v rámci funkce upravovat.

    Návratové hodnoty

    Většina programovacích jazyků má koncept vracení hodnoty funkcí. To znamená, že funkce musí odeslat data zpět do původního místa volání. Na rozdíl od funkcí ve „skutečných“ programovacích jazycích neposkytuje funkce Bash podporu pro vrácení hodnoty, když je volána. Umožňují nám však nastavit návratový stav, který je podobný tomu, jak se program nebo příkaz ukončí se stavem ukončení. Po dokončení funkce bash je její návratová hodnota stavem posledního provedeného příkazu ve funkci. Vrátí 0 pro stav úspěchu a nenulové desítkové číslo v rozsahu 1-255 pro selhání.

    Návratový stav lze indikovat pomocí klíčového slova 'return' a je přiřazen k proměnné $?. Příkaz return ukončí funkci a funguje jako výstupní stav funkce.

    Například, zvažte následující 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ýstup

    Bash funkce

    Další lepší možností, jak vrátit hodnotu z funkce, je odeslat hodnotu stdout použitím echo nebo printf příkazy, jak je uvedeno níže:

    Bash skript

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

    Výstup

     Welcome to Javatpoint. 

    Převažující příkazy

    Máme možnost přepsat příkazy bash vytvořením funkce se stejným názvem jako příkaz, který se chystáme přepsat. Pokud například chceme přepsat příkaz 'echo', musíme vytvořit funkci s názvem 'echo'.

    Tento koncept přepsání příkazů bash může být užitečný v některých scénářích, jako když chceme použít příkaz se specifickými možnostmi. Také, když nechceme poskytnout celému příkazu možnosti několikrát v rámci skriptu. V takových případech můžeme přepsat vestavěný příkaz bash pro příkaz pomocí voleb. Pojďme nyní pochopit koncept přepsání příkazů v Bash Shell Scripting pomocí několika příkladů:

    Příklad

    V tomto příkladu jsme přepsali příkaz 'echo' a přidali časové razítko ve formě argumentu k pří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ýstup

    Bash funkce

    Závěr

    V tomto tématu jsme demonstrovali funkci Bash. Funkce Bash je považována za blok opakovaně použitelného kódu vyvinutého k provádění konkrétní operace. Jakmile je definován, může být v rámci skriptu volán několikrát.


    je rezervována pro název funkce.
  • Proměnná $# se používá k uložení počtu pozičních argumentů/parametrů přidělených funkci.
  • Proměnné $* a $@ se používají k uložení všech argumentů/parametrů zadaných funkci.
    • Když se $* použije s dvojitými uvozovkami (tj. '$*' ), rozšíří se na jeden řetězec oddělený mezerou. Například ' $n atd'.
    • Když se $@ použije s dvojitými uvozovkami (tj. '$@' ), rozšíří se na samostatný řetězec. Například '' '' '$n' atd.
    • Když $* a $# nejsou použity s dvojitými uvozovkami, jsou obě stejné.

Následuje kód, který ilustruje postup předávání argumentů funkcím a přístupu k argumentům uvnitř funkce.

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ýstup

Bash funkce

V tomto skriptu jsme přidali hodnoty 'We', 'welcome', 'you', 'on' a 'Javatpoint' poté, co jsme zavolali argumenty funkce. Tyto hodnoty jsou předány do argumenty funkce jako parametry a uloženy v lokální proměnné. Na rozdíl od jiných jazyků však interpret ukládá předané hodnoty do předdefinovaných proměnných, které jsou pak pojmenovány podle sekvence předávaných parametrů.

Například,

'My' slovo je uloženo do proměnné 1 .
'Vítejte' slovo je uloženo do proměnné 2 .
'vy' slovo je uloženo do proměnné 3 .
'na' slovo je uloženo do proměnné 4 .
'Javatpoint' slovo je uloženo do proměnné 5 .

objekt v programování Java

Variabilní rozsah

Globální proměnné jsou definovány jako proměnné, ke kterým lze přistupovat kdekoli ve skriptu bez ohledu na rozsah. Ve výchozím nastavení jsou všechny proměnné definovány jako globální proměnné, i když jsou deklarovány uvnitř funkce. Můžeme také vytvářet proměnné jako lokální proměnnou. Lokální proměnné lze deklarovat v těle funkce pomocí ?local? klíčové slovo, když jsou přiřazeny poprvé. Jsou přístupné pouze uvnitř této funkce. Můžeme vytvářet lokální proměnné se stejným názvem v různých funkcích. Chcete-li přidat lokální proměnnou, můžeme použít následující syntaxi:

 local var_name= 

Chcete-li lépe porozumět tomu, jak funguje rozsah proměnných v Bash Scripting, podívejte se na následující pří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ýstup

Bash funkce

Podle výstupu, pokud nastavíme lokální proměnnou v těle funkce se stejným názvem jako existující globální proměnná, bude mít přednost před globální proměnnou. Globální proměnné lze v rámci funkce upravovat.

Návratové hodnoty

Většina programovacích jazyků má koncept vracení hodnoty funkcí. To znamená, že funkce musí odeslat data zpět do původního místa volání. Na rozdíl od funkcí ve „skutečných“ programovacích jazycích neposkytuje funkce Bash podporu pro vrácení hodnoty, když je volána. Umožňují nám však nastavit návratový stav, který je podobný tomu, jak se program nebo příkaz ukončí se stavem ukončení. Po dokončení funkce bash je její návratová hodnota stavem posledního provedeného příkazu ve funkci. Vrátí 0 pro stav úspěchu a nenulové desítkové číslo v rozsahu 1-255 pro selhání.

Návratový stav lze indikovat pomocí klíčového slova 'return' a je přiřazen k proměnné $?. Příkaz return ukončí funkci a funguje jako výstupní stav funkce.

Například, zvažte následující kód:

powershell větší nebo rovno

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ýstup

Bash funkce

Další lepší možností, jak vrátit hodnotu z funkce, je odeslat hodnotu stdout použitím echo nebo printf příkazy, jak je uvedeno níže:

indická rekha

Bash skript

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

Výstup

 Welcome to Javatpoint. 

Převažující příkazy

Máme možnost přepsat příkazy bash vytvořením funkce se stejným názvem jako příkaz, který se chystáme přepsat. Pokud například chceme přepsat příkaz 'echo', musíme vytvořit funkci s názvem 'echo'.

Tento koncept přepsání příkazů bash může být užitečný v některých scénářích, jako když chceme použít příkaz se specifickými možnostmi. Také, když nechceme poskytnout celému příkazu možnosti několikrát v rámci skriptu. V takových případech můžeme přepsat vestavěný příkaz bash pro příkaz pomocí voleb. Pojďme nyní pochopit koncept přepsání příkazů v Bash Shell Scripting pomocí několika příkladů:

Příklad

V tomto příkladu jsme přepsali příkaz 'echo' a přidali časové razítko ve formě argumentu k pří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ýstup

Bash funkce

Závěr

V tomto tématu jsme demonstrovali funkci Bash. Funkce Bash je považována za blok opakovaně použitelného kódu vyvinutého k provádění konkrétní operace. Jakmile je definován, může být v rámci skriptu volán několikrát.