Unix / Linux - Shell-Funktionen

Hallo, angehende Programmierer! Willkommen auf unserer Reise in die Welt der Shell-Funktionen. Als Ihr freundlicher Nachbarschafts-Computerlehrer freue ich mich darauf, Sie durch dieses faszinierende Thema zu führen. Machen Sie sich keine Sorgen, wenn Sie neu im Programmieren sind - wir beginnen mit den Grundlagen und bauen unser Wissen schrittweise aus. Tauchen wir ein!

Unix / Linux - Shell Functions

Was sind Shell-Funktionen?

Bevor wir mit der Erstellung von Funktionen beginnen, lassen Sie uns verstehen, was sie sind. Stellen Sie sich Funktionen als kleine Helfer in Ihrem Skript vor. Sie sind wie Mini-Programme in Ihrem Hauptprogramm, die spezifische Aufgaben erledigen. Genau wie Sie vielleicht einen Freund haben, der großartig Kaffee kochen kann, können Sie eine Funktion erstellen, die Experte für eine bestimmte Aufgabe in Ihrem Skript ist.

Funktionen erstellen

Eine Funktion zu erstellen, ist wie Ihrem Computer ein neues Kunststück beizubringen. Hier ist die grundlegende Struktur:

function_name() {
commands
}

Lassen Sie uns eine einfache Funktion erstellen, die uns begrüßt:

say_hello() {
echo "Hello, wonderful world!"
}

Um diese Funktion zu verwenden, rufen wir sie einfach durch ihren Namen auf:

say_hello

Wenn Sie dies ausführen, werden Sie sehen:

Hello, wonderful world!

Ist das nicht toll? Wir haben gerade unserem Computer beigebracht, "Hallo" zu sagen!

Parameter an eine Funktion übergeben

Nun machen wir unsere Funktion ein bisschen klüger. Wir können Informationen an unsere Funktionen übergeben, genau wie Sie Ihrem Kaffeekocher mitteilen könnten, wie Sie Ihren Kaffee mögen.

Hier ist, wie wir unsere say_hello-Funktion ändern können, um eine bestimmte Person zu begrüßen:

say_hello() {
echo "Hello, $1! How are you today?"
}

In dieser Funktion repräsentiert $1 den ersten Parameter, den wir an die Funktion übergeben. Lassen Sie es uns ausprobieren:

say_hello Alice

Ausgabe:

Hello, Alice! How are you today?

Wir können sogar mehrere Parameter übergeben:

greet() {
echo "Hello, $1! The weather is $2 today."
}

greet Alice sunny

Ausgabe:

Hello, Alice! The weather is sunny today.

Werte aus Funktionen zurückgeben

In Shell-Skripten geben Funktionen keine Werte in der traditionellen Weise zurück. Stattdessen können sie ein Ergebnis echoen oder eine globale Variable setzen. Lassen Sie uns beide Methoden betrachten:

Mit echo:

get_square() {
echo $(($1 * $1))
}

result=$(get_square 5)
echo "The square of 5 is $result"

Ausgabe:

The square of 5 is 25

Mit einer globalen Variable:

get_square() {
square=$(($1 * $1))
}

get_square 6
echo "The square of 6 is $square"

Ausgabe:

The square of 6 is 36

Geschachtelte Funktionen

Genau wie Sie eine Geschichte in einer Geschichte haben können, können Sie auch eine Funktion in einer Funktion haben. Das nennt man Schachteln. Sehen wir uns ein Beispiel an:

outer_function() {
echo "This is the outer function"

inner_function() {
echo "This is the inner function"
}

inner_function
}

outer_function

Ausgabe:

This is the outer function
This is the inner function

Funktionserufe vom Prompt

Sie können Funktionen auch direkt vom Befehlszeilen-Prompt definieren und aufrufen. Dies ist besonders nützlich, um benutzerdefinierte Befehle zu erstellen. Hier ist wie:

  1. Öffnen Sie Ihr Terminal
  2. Definieren Sie Ihre Funktion:
greet() { echo "Hello, $1!"; }
  1. Jetzt können Sie sie verwenden:
greet World

Ausgabe:

Hello, World!

Denken Sie daran, dass diese Funktionen nur für Ihre aktuelle Terminal-Sitzung gültig sind. Wenn Sie sie dauerhaft verwenden möchten, sollten Sie sie zu Ihrer Shell-Konfigurationsdatei hinzufügen (wie .bashrc oder .zshrc).

Häufige Shell-Funktionsmethoden

Hier ist eine Tabelle mit einigen häufig verwendeten Methoden für Shell-Funktionen:

Methode Beschreibung Beispiel
function_name() Definiert eine Funktion greet() { echo "Hello!"; }
$1, $2, ... Greift auf Funktionsparameter zu echo "Hello, $1!"
$# Gibt die Anzahl der Parameter zurück echo "Number of parameters: $#"
$@ Gibt alle Parameter als separate Wörter zurück for param in "$@"; do echo $param; done
$* Gibt alle Parameter als ein einzelnes Wort zurück echo "All parameters: $*"
local Deklariert eine lokale Variable local name="Alice"
return Beendet die Funktion mit einem Status return 0

Erinnern Sie sich daran, Übung macht den Meister! Scheuen Sie sich nicht, mit diesen Funktionen zu experimentieren und Ihre eigenen zu erstellen. Bevor Sie es wissen, werden Sie komplexe Skripte mühelos schreiben. Ich hoffe, dieser Tutorial war hilfreich und unterhaltsam. Weiterschreiben und denken Sie daran - jeder Experte war einmal ein Anfänger. Viel Spaß beim Skripten!

Credits: Image by storyset