Eine Kurzanleitung zum Erstellen und Aufrufen von Funktionen in Bash.
Eine Funktion ist ein Block wiederverwendbaren Codes, der verwendet wird, um eine Aktion auszuführen. Mit Funktionen erhalten wir eine bessere Modularität und ein hohes Maß an Wiederverwendung von Code.
Bash bietet einige eingebaute Funktionen wie echo
und read
, aber wir können auch unsere eigenen Funktionen erstellen.
Erstellen einer Funktion in Bash
Es gibt zwei Möglichkeiten, wie wir Funktionen in Bash erstellen können:
Eine Möglichkeit besteht darin, einfach den Funktionsnamen zu verwenden, z. B.:
functionName(){
// scope of function
}
Kompaktversion:
functionName(){ echo "hello"; }
Eine andere Möglichkeit besteht darin, eine Funktion mit function
zu deklarieren Stichwort:
function functionName {
// scope of function
}
Kompaktversion:
function functionName { echo "hello"; }
Beachten Sie, dass wir den ()
nicht benötigen bei Verwendung des function
Schlüsselwort zum Erstellen einer Funktion.
Wichtige Hinweise zu Bash-Funktionen:
- Der Code zwischen den geschweiften Klammern
{}
ist der Funktionskörper und -bereich - Beim Aufrufen einer Funktion verwenden wir einfach den Funktionsnamen von irgendwo im Bash-Skript
- Die Funktion muss definiert werden, bevor sie verwendet werden kann
- Bei Verwendung der Kompaktversion muss der letzte Befehl ein Semikolon
;
haben
Beispiel:
Der folgende Code erstellt eine Funktion, die „Hello World“ auf der Konsole ausgibt. Der Name der Funktion heißt printHello :
#!/bin/bash
printHello(){
echo "Hello World!"
}
Aufruf einer Funktion in Bash
Wie rufen wir die obige Funktion auf? Alles, was Sie in Ihr Bash-Skript tun müssen, ist, den Namen der Funktion zu schreiben, und sie wird aufgerufen.
Zum Beispiel:
#!/bin/bash
printHello(){
echo "Hello World!"
}
# Call printHello function from anywhere in the script by writing the name
printHello
Ausgabe:
"Hello World"
Argumente übergeben
Die obige Funktion printHello()
hat keine Parameter. Jedes Mal, wenn wir es aufrufen, erhalten wir die Ausgabe „Hello World“. Aber was wäre, wenn wir eine allgemeinere Funktion erstellen wollten? Zum Beispiel können wir die Funktion mit einem Argument aufrufen und sie wird drucken, was wir ihr senden.
Dafür gibt es zwei Möglichkeiten.
Zuerst können wir die printHello()
ändern Funktion, um die übergebenen Argumente auszugeben:
Zum Beispiel:
#!/bin/bash
printAny(){
echo "Hello " $1
}
printAny World
printAny DevQa
printAny I love coding!
Ausgabe:
Hello World
Hello DevQA
Hello I
Beachten Sie, wie die dritte print-Anweisung printAny I love coding!
nur „Hallo, ich“ ausgegeben.
Dies liegt daran, dass unsere Funktion so konzipiert ist, dass sie nur 1 Parameter $1
akzeptiert . Das Wort „Ich liebe Programmieren!“ ist eigentlich 3 Parameter.
Wenn wir alles drucken wollten, müssten wir den Text in Anführungszeichen setzen
Zum Beispiel:
#!/bin/bash
printAny(){
echo "Hello " $1
}
printAny "I love coding!"
Ausgabe:
Hello I love coding
Ein weiteres Beispiel, wir können auch Ziffern übergeben:
#!/bin/bash
add() {
result=$(($1 + $2))
echo "Result is: $result"
}
add 1 2
Ausgabe:
Result is: 3
Rückgabewerte
Bash-Funktionen können auch Werte zurückgeben.
Zum Beispiel:
#!/bin/bash
add() {
result=$(($1 + $2))
}
add 1 2
echo "The sum is: "$result
Ausgabe:
The sum is: 3
Eine andere Möglichkeit, Werte von einer Funktion zurückzugeben, besteht darin, das Ergebnis einer Variablen zuzuweisen, die bei Bedarf verwendet werden kann.
Zum Beispiel:
#!/bin/bash
add () {
local result=$(($1 + $2))
echo "$result"
}
result="$(add 1 2)"
echo "The sum is: "$result
Ausgabe:
The sum is: 3