GNU/Linux >> Znalost Linux >  >> Linux

Jak vytvářet a volat funkce v Bash

Rychlý průvodce, jak vytvářet a volat funkce v Bash.

Funkce je blok opakovaně použitelného kódu, který se používá k provedení nějaké akce. S funkcemi získáme lepší modularitu a vysoký stupeň opětovného použití kódu.

Bash poskytuje některé vestavěné funkce, jako je echo a read , ale můžeme také vytvářet vlastní funkce.

Vytvoření funkce v Bash

Existují dva způsoby, jak můžeme v Bash vytvářet funkce:

Jedním ze způsobů je použít pouze název funkce, např.:

functionName(){
  // scope of function
}

Kompaktní verze:

functionName(){ echo "hello"; }

Dalším způsobem je deklarovat funkci pomocí function klíčové slovo:

function functionName {
  // scope of function
}

Kompaktní verze:

function functionName { echo "hello"; }

Všimněte si, že nepotřebujeme () při použití function klíčové slovo pro vytvoření funkce.

Důležité body k poznámce o funkcích Bash:

  • Kód mezi složenými závorkami {} je tělo a rozsah funkce
  • Při volání funkce používáme pouze název funkce odkudkoli ve skriptu bash
  • Před použitím musí být funkce definována
  • Při použití kompaktní verze musí mít poslední příkaz středník ;

Příklad:

Následující kód vytvoří funkci, která vytiskne „Hello World“ do konzole. Název funkce se nazývá printHello :

#!/bin/bash

printHello(){
    echo "Hello World!"
}

Volání funkce v Bash

Jak nazýváme výše uvedenou funkci? Vše, co musíte udělat ve vašem bash skriptu, je napsat název funkce a ta se zavolá.

Například:

#!/bin/bash

printHello(){
    echo "Hello World!"
}

# Call printHello function from anywhere in the script by writing the name

printHello

Výstup:

"Hello World"

Předávání argumentů

Výše uvedená funkce printHello() nemá žádné parametry. Kdykoli to zavoláme, dostaneme výstup „Ahoj světe“. Ale co kdybychom chtěli vytvořit obecnější funkci? Například můžeme zavolat funkci s nějakým argumentem a ona vypíše, co jí pošleme.

Existují dva způsoby, jak to udělat.

Nejprve můžeme upravit printHello() funkce pro tisk argumentů, které jsou jí předány:

Například:

#!/bin/bash

printAny(){
    echo "Hello " $1
}

printAny World
printAny DevQa
printAny I love coding!

Výstup:

Hello World
Hello DevQA
Hello I

Všimněte si, jak třetí tiskový příkaz printAny I love coding! vypsal pouze „Ahoj, já“.

Je to proto, že naše funkce je navržena tak, aby přijala pouze 1 parametr $1 . Slovo "Miluji kódování!" jsou ve skutečnosti 3 parametry.

Pokud bychom to chtěli vše vytisknout, museli bychom kolem textu umístit uvozovky

Například:

#!/bin/bash

printAny(){
    echo "Hello " $1
}

printAny "I love coding!"

Výstup:

Hello I love coding

Další příklad, můžeme předat také číslice:

#!/bin/bash

add() {
    result=$(($1 + $2))
    echo "Result is: $result"
}

add 1 2

Výstup:

Result is: 3

Vrácené hodnoty

Funkce Bash mohou také vracet hodnoty.

Například:

#!/bin/bash

add() {
    result=$(($1 + $2))
}

add 1 2
echo "The sum is: "$result

Výstup:

The sum is: 3

Dalším způsobem, jak vrátit hodnoty z funkce, je přiřadit výsledek proměnné, kterou lze použít podle potřeby.

Například:

#!/bin/bash

add () {
  local result=$(($1 + $2))
  echo "$result"
}

result="$(add 1 2)"
echo "The sum is: "$result

Výstup:

The sum is: 3

Linux
  1. Jak definovat a používat funkce v Linux Shell Script

  2. Jak vytvořit a odstranit uživatelskou skupinu v Linuxu

  3. Jak volat funkci C v C++, funkci C++ v C (Mix C a C++)

  1. Funkce v proměnných Shell?

  2. Jak volat funkci Bash ve skriptu Bash uvnitř Awk?

  3. Bash Beginner Series #9:Použití funkcí v Bash

  1. Funkce Bash a jak ji používat {Proměnné, argumenty, návrat}

  2. Jak vytvořit Bash skripty pomocí externích proměnných a vložených skriptů

  3. Jak vytvořit Linuxové makro a funkční klávesové vazby v souboru .intputrc