50 % Rabatt alle Pläne, begrenzte Zeit. Beginnend bei $2.48/mo
Noch 11 Minuten
Server und Betriebssystem

Erklärte Bash-Funktionen: Syntax, Beispiele und Anwendungsfälle

Kelly Watson By Kelly Watson 11 Min. Lektüre Aktualisiert am 14. Dezember 2025
Abstrakte 3D-Illustration leuchtend blauer Codeblöcke, die sich zu einer modularen Struktur zusammenfügen und Bash-Funktionen darstellen

Bash-Funktionen gruppieren verwandte Befehle unter einem einzigen Namen. Wenn Sie diesen Namen aufrufen, wird der gesamte Block ausgeführt. Sie können Argumente übergeben, um das Verhalten anzupassen, und Werte zurückgeben, um Ergebnisse zu kommunizieren. Dadurch bleibt Ihr Code sauber und leicht zu warten.

Linux dominiert Serverumgebungen weltweit, daher ist die Beherrschung der Bash-Funktionen heute wichtiger denn je. Funktionen verwandeln unordentliche Skripte in saubere, wiederverwendbare Automatisierung.

This guide walks you through basic syntax to advanced use cases. Sie erfahren, wie Sie Funktionen deklarieren, Parameter übergeben, Rückgabewerte verarbeiten und sehen zehn praktische Beispiele, die Sie in Ihren eigenen Skripten verwenden können.

TL;DR

  • Bash-Funktionen sind benannte Codeblöcke, die Sie in Ihren Skripten wiederverwenden können
  • Definieren Sie Funktionen mit Funktionsname() { Befehle; } Syntax
  • Übergeben Sie Argumente mit $1, $2, $3 Positionsparameter
  • Funktionen verbessern die Lesbarkeit, Modularität und Wartung des Codes
  • Verwenden zurückkehren um Funktionen zu beenden und Statuscodes zu kommunizieren (0 = Erfolg, ungleich Null = Fehler)
  • Funktionen können mithilfe von Skripten gemeinsam genutzt werden Quelle or exportieren -f
  • Zu den praktischen Beispielen gehören Dateisicherung, Festplattenüberwachung, Eingabevalidierung und Dienstprüfung

Was ist Bash-Scripting?

3D-Darstellung einer digitalen Schriftrolle mit leuchtendem Bash-Code selbst, der die Automatisierung der Bash-Skripterstellung darstellt.

Bash-Scripting ist eine Methode zur Aufgabenautomatisierung mithilfe der Bash-Shell. Es dient als Standard-Befehlszeilenschnittstelle für Linux und bleibt ein Standardtool unter macOS. Ein Bash-Skript ist ein in der Bash-Skriptsprache codiertes Programm, das in einem Terminal oder als eigenständige Skriptdatei ausgeführt werden kann.

Mit Die Nutzung von Linux-Desktops nimmt stetig zu und dem Betriebssystem, das Serverumgebungen weltweit dominiert, sind Bash-Skriptkenntnisse für IT-Experten wertvoll geworden. Die Sprache lässt sich gut in DevOps-Tools wie Docker, Kubernetes und CI/CD-Pipelines integrieren.

Mit Bash-Skripten können Sie Aufgaben von einfachen Befehlen bis hin zu komplexer Automatisierung und Systemverwaltung ausführen. Sie können sich wiederholende Aufgaben automatisieren, Wartungsskripte entwickeln, Bereitstellungspipelines erstellen, Softwaresysteme verwalten und Daten manipulieren.

Was ist eine Bash-Funktion?

Futuristische digitale Illustration, die unordentliche Befehlszeilendaten zeigt, die von einem leuchtenden Verarbeitungstor organisiert werden und die Funktionsweise einer Bash-Funktion symbolisieren, mit leerem Raum auf der linken Seite.

Eine Bash-Funktion kann als eine Reihe von Befehlen definiert werden, die je nach Anwendungsfall entweder in einem Bash-Skript definiert oder interaktiv an der Eingabeaufforderung festgelegt werden. Einmal definiert, kann eine Bash-Funktion wie ein normaler Shell-Befehl mehrmals innerhalb des Skripts oder in anderen Skripten aufgerufen werden.

Mit Bash-Funktionen können Sie wiederverwendbare Codeblöcke erstellen, die komplexe Vorgänge ausführen, Ihren Code organisieren und Ihre Skripte vereinfachen können. Sie können Argumente an eine Bash-Funktion übergeben und diese dann innerhalb der Funktion verwenden, um Vorgänge auszuführen. Bash-Funktionen geben Werte zurück, die Sie an anderer Stelle in Ihrem Skript verwenden können.

Wir werden mehrere spezifische Implementierungsstile abdecken, darunter simple_function für grundlegende Logik, simple_inputs für den Umgang mit Argumenten und fortgeschrittene Strukturen wie fibonnaci_recursion.

Grundlagen der Bash-Funktionen ist für jeden Systemadministrator oder DevOps-Ingenieur, der mit Automatisierung arbeitet, von Bedeutung. In den folgenden Abschnitten wird jeder dieser Typen im Detail behandelt.

Warum Bash-Funktionen verwenden?

Leuchtendes blaues Zahnrad mit Optimierungssymbolen, das eine Codemaschine antreibt und die durch die Verwendung von Bash-Funktionen gewonnene Effizienz und Geschwindigkeit darstellt.

Nachdem wir nun die Definition der Bash-Funktionen behandelt haben, wollen wir uns ihre Hauptvorteile ansehen. Dieser Abschnitt hilft Ihnen zu verstehen, wo Funktionen am nützlichsten sind.

Wiederverwendbarkeit

Sie erstellen eine Bash-Funktion und verfügen über ein leistungsstarkes Tool. Sie können einen Codeblock einmal schreiben und ihn in Ihrem Skript oder sogar in anderen Skripten mehrmals wiederverwenden.

Dies macht Ihren Code effizienter und spart Zeit, da Duplizierungen vermieden werden. Die Pflege Ihres Codes wird einfacher, da Sie die Funktion nur an einer Stelle ändern müssen.

Lesbarkeit

Komplexe Skripte können schwer zu entziffern sein. Bash-Funktionen lösen dieses Problem, indem sie Ihr Skript in kleinere, besser verwaltbare Teile zerlegen.

Jede Funktion dient einem bestimmten Zweck und hat einen beschreibenden Namen, der ihre Rolle erklärt. Dies erleichtert Ihnen und anderen das Verständnis und die Pflege des Codes.

Modularität

Funktionen organisieren Ihren Code. Sie können die Logik in kleinere Module aufteilen, wodurch Ihre Skriptstruktur sauber und einfach zu verwalten bleibt.

Und wenn Sie eine neue Funktion hinzufügen müssen, können Sie dies tun, ohne sich mit anderen Teilen Ihres Skripts herumzuschlagen. Wenn es an der Zeit ist, Funktionen zu entfernen oder zu ändern, bleibt der Rest Ihres Skripts erhalten.

Bash-Funktionsparameter

Sie können Argumente oder Parameter an Ihre Funktionen übergeben. Mit diesen Argumenten können Ihre Funktionen basierend auf den empfangenen Eingaben unterschiedliche Aktionen anpassen und ausführen.

Dies eröffnet viele Möglichkeiten und macht Ihre Funktionen vielseitiger und anpassungsfähiger. Anstatt ähnlichen Code mehrmals zu schreiben, schreiben Sie eine Funktion, die verschiedene Eingaben verarbeitet.

Wie und wo werden Bash-Funktionen verwendet?

3D-Flussdiagramm aus Glas, das die Verzweigung der Skriptausführung in einen Funktionsblock und die Rückkehr zeigt und visualisiert, wie Bash-Funktionen im Logikfluss verwendet werden.

Lassen Sie uns nun ein wenig technisch mit unserer Definition beginnen und mit einem kurzen Beispiel für die Erstellung von Bash-Funktionen beginnen. Die folgende Syntax kann in Unix-basierten Umgebungen verwendet werden. Wenn Sie unter Windows arbeiten, ist das möglich Installieren Sie Linux Bash unter Windows 10 um diesen Beispielen zu folgen.

Erstellen einer Bash-Funktion

Beginnen Sie mit der folgenden Befehlsstruktur:

Funktionsname () {

    # Befehle gehen hierher

}

 

Sobald Sie die Funktion erstellt haben, können Sie sie jederzeit in Ihrem Code verwenden. Hier ist ein funktionierendes Beispiel:

grüßen () {

    echo „Hallo, 1 $!“

}

 

Rufen Sie diese Funktion mit auf grüße die Welt um „Hello, World!“ auszugeben Der $1 stellt das erste Argument dar, das an die Funktion übergeben wird.

Hier sind einige weitere praktische Beispiele, die Sie in Ihren eigenen Skripten verwenden können:

# Erstellen Sie eine Sicherungskopie einer beliebigen Datei

backup_file () {

    cp „$1“ „$1.bak“

    echo „Backup erstellt: $1.bak“

}

 

# Überprüfen Sie, ob ein Verzeichnis vorhanden ist, und erstellen Sie es, wenn dies nicht der Fall ist

secure_dir () {

    Wenn [ ! -d „$1“ ]; Dann

        mkdir -p „$1“

        echo „Erstelltes Verzeichnis: $1“

    fi

}

 

# Protokollieren Sie Nachrichten mit Zeitstempeln

log_message () {

    echo „[$(date ‚+%Y-%m-%d %H:%M:%S‘)] $1“

}

 

Sie definieren diese benutzerdefinierten Bash-Funktionen einmal und rufen sie bei Bedarf im gesamten Skript auf.

Grundlagen der Funktionssyntax

Funktionen verhalten sich wie Mini-Skripte innerhalb Ihres Hauptskripts, teilen sich jedoch den Speicher der Shell. Berücksichtigen Sie diese drei spezifischen Verhaltensweisen, wenn Sie sie schreiben.

Variablenumfang (lokal vs. global)

Variablen innerhalb von Funktionen sind standardmäßig global. Wenn Sie definieren my_var=“test“ Innerhalb einer Funktion überschreibt es alle vorhandenen meine_var in deinem Skript. Immer verwenden lokal Variablen auf die Funktion zu beschränken, verhindert Nebenwirkungen:

local my_var=“value“

Positionsparameter

Funktionen lesen Argumente mit denselben $1, $2, Und $@ Variablen als Skripte. Diese sind lokal für die Funktion und werden zurückgesetzt, wenn die Funktion beendet wird. Auf die ursprünglichen Argumente des Skripts kann innerhalb der Funktion nicht zugegriffen werden, es sei denn, Sie übergeben sie explizit.

Rückgabewerte

Bash-Funktionen geben keine Daten zurück wie Python- oder JavaScript-Funktionen. Der zurückkehren Der Befehl legt nur einen Exit-Status (0-255) fest, um Erfolg oder Misserfolg anzuzeigen. Um tatsächliche Daten (wie eine Zeichenfolge oder eine Berechnung) zurückzugeben, Echo das Ergebnis und erfassen Sie es beim Aufruf der Funktion:

result=$(my_function)

Die 10 nützlichsten Beispiele für Bash-Funktionen

Nachdem Sie nun die Bash-Funktionen und deren Erstellung verstanden haben, finden Sie hier zehn praktische Beispiele, die Sie Ihren Skripten hinzufügen können. Jede Funktion löst ein häufiges Problem und demonstriert die richtige Struktur, Argumente und Rückgabewerte.

1. Dateisicherungsfunktion

Erstellt eine zeitgestempelte Sicherung jeder Datei:

backup_file () {

    lokale Datei=“$1“

    local backup=“${file}.$(date +%Y%m%d_%H%M%S).bak“

    

    if [ -f „$file“ ]; Dann

        cp „$file“ „$backup“

        echo „Backup erstellt: $backup“

        0 zurückgeben

    anders

        echo „Fehler: Datei nicht gefunden“

        Rückkehr 1

    fi

}

 

Verwendung: Sicherungsdatei /etc/nginx/nginx.conf

2. Verzeichnisprüfer

Prüft, ob ein Verzeichnis existiert und erstellt es bei Bedarf:

secure_dir () {

    lokales dir=“$1“

    

    Wenn [ ! -d „$dir“ ]; Dann

        mkdir -p „$dir“

        echo „Erstellt: $dir“

    fi

}

 

Verwendung: secure_dir /var/log/myapp

3. Logger mit Zeitstempel

Fügt Zeitstempel zu Protokollnachrichten zum Debuggen hinzu:

log_message () {

    lokale Ebene=“$1“

    lokale Nachricht=“$2“

    echo „[$(date ‚+%Y-%m-%d %H:%M:%S‘)] [$level] $message“

}

 

Verwendung: log_message „INFO“ „Skript gestartet“

4. Speicherplatzmonitor

Überprüft die Festplattennutzung und warnt, wenn sie einen Schwellenwert überschreitet:

check_disk_space () {

    lokaler Schwellenwert=“${1:-80}“

    lokale Nutzung=$(df / | tail -1 | awk ‘{print $5}’ | tr -d ‘%’)

    

    if [ „$usage“ -gt „$threshold“ ]; Dann

        echo „Warnung: Festplattennutzung bei ${usage}%“

        Rückkehr 1

    fi

    0 zurückgeben

}

 

Verwendung: check_disk_space 90

5. Eingabevalidator

Überprüft, ob die Benutzereingabe nicht leer ist:

validieren_input () {

    lokale Eingabe=“$1“

    lokaler Name=“$2“

    

    if [ -z „$input“ ]; Dann

        echo „Fehler: $name darf nicht leer sein“

        Rückkehr 1

    fi

    0 zurückgeben

}

 

Verwendung: valid_input „$username“ „Benutzername“

6. Dienststatusprüfung

Überprüft, ob ein Dienst ausgeführt wird, und meldet den Status:

check_service () {

    lokaler Dienst=“$1“

    

    wenn systemctl aktiv ist –quiet „$service“; Dann

        echo „$service läuft“

        0 zurückgeben

    anders

        echo „$service läuft nicht“

        Rückkehr 1

    fi

}

 

Verwendung: check_service nginx

7. Dateierweiterungs-Extraktor

Extrahiert die Erweiterung aus einem Dateinamen:

get_extension () {

    lokaler Dateiname=“$1“

    echo „${filename##*.}“

}

 

Verwendung: ext=$(get_extension „document.pdf“)

8. Fadenschneider

Entfernt führende und nachfolgende Leerzeichen aus Zeichenfolgen:

trim_string () {

    local str=“$1“

    str=“${str#“${str%%[![:space:]]*}“}“

    str=“${str%“${str##*[![:space:]]}“}“

    echo „$str“

}

 

Verwendung: clean=$(trim_string „Hallo Welt“)

9. Sicherer Dateiarchivierer

Verschiebt eine Datei in ein benutzerdefiniertes $HOME/.trash-Verzeichnis, anstatt sie dauerhaft zu löschen. Es fügt einen Zeitstempel an den Dateinamen an, um zu verhindern, dass frühere Sicherungen überschrieben werden.

safe_remove() {

    lokale Datei=“$1“

    local trash=“$HOME/.trash“

    # Zeitstempel anhängen, um ein Überschreiben vorhandener Dateien zu vermeiden

    local new_name=“$(basename „$file“)_$(date +%s)“

    

    mkdir -p „$trash“

 

    if [ -e „$file“ ]; Dann

        mv „$file“ „$trash/$new_name“

        echo „Ins Archiv verschoben: $file -> $trash/$new_name“

    anders

        echo „Fehler: $file nicht gefunden“

        Rückkehr 1

    fi

}

 

Verwendung: safe_remove old_script.sh

 

10. Statusreporter

Demonstriert den Rückgabemechanismus der Bash-Funktion zur Fehlerbehandlung. Der Rückgabewert der Bash-Funktion zeigt Erfolg (0) oder Misserfolg (ungleich Null) an:

Process_Data () {

    lokale Datei=“$1“

    

    Wenn [ ! -f „$file“ ]; Dann

        Rückkehr 1

    fi

    

    # Verarbeiten Sie die Datei

    cat „$file“ | wc -l

    0 zurückgeben

}

 

# Überprüfen Sie den Rückgabewert

Prozessdaten „data.txt“

wenn [ $? -eq 0 ]; Dann

    echo „Verarbeitung abgeschlossen“

anders

    echo „Verarbeitung fehlgeschlagen“

fi

 

Der $? Die Variable erfasst den Exit-Status des letzten Befehls oder Funktionsaufrufs.

Funktion Zweck Hauptmerkmal
backup_file Erstellen Sie Dateisicherungen Benennung mit Zeitstempel
gewährleisten_dir Verzeichnisverwaltung Wird erstellt, wenn es fehlt
log_message Protokollierung Zeitstempelpräfix
check_disk_space Systemüberwachung Schwellenwertwarnungen
validieren_input Eingabevalidierung Überprüfung leerer Zeichenfolgen
check_service Serviceüberwachung Systemd-Integration
get_extension String-Analyse Parametererweiterung
trim_string String-Bereinigung Entfernung von Leerzeichen
safe_remove Sicheres Löschen Papierkorbverzeichnis
Prozessdaten Fehlerbehandlung Rückgabewerte

Ausführen von Bash-Funktionen auf einem VPS

Bash-Funktionen werden leistungsstark, wenn sie in einer dedizierten Serverumgebung ausgeführt werden. Unser Linux-VPS bietet Ihnen vollständigen Root-Zugriff, um Ihre Shell-Umgebung anzupassen, systemweite Funktionsbibliotheken zu erstellen und Serververwaltungsaufgaben ohne Einschränkungen zu automatisieren.

Mit einem VPS können Sie wiederverwendbare Funktionen darin speichern /etc/profile.d/ für alle Benutzer, planen Sie funktionsbasierte Skripte über Cron-Jobs und erstellen Sie Automatisierungspipelines für Bereitstellung und Wartung. Wir bieten Server an 12 globalen Standorten mit Netzwerkgeschwindigkeiten von bis zu 40 Gbit/s und DDR5-Speicher an, was eine schnellere Skriptausführung und eine reibungslosere Datenverarbeitung bedeutet.

Dieses Maß an Kontrolle macht einen VPS ideal für alle, die sich ernsthaft mit Shell-Scripting und Systemautomatisierung beschäftigen.

Abschluss

Bash-Funktionen sind der Schlüssel zum Erstellen modularer und wiederverwendbarer Skripte. Sie ermöglichen Ihnen, verwandte Befehle zu gruppieren und komplexe Logik zu kapseln, um Ihren Code einfacher lesbar und wartungsfreundlicher zu machen. Wenn Sie die Cloud-Infrastruktur verwalten, Bereitstellungspipelines automatisieren oder routinemäßige Systemverwaltungsaufgaben erledigen, helfen Funktionen dabei, Ihre Skripte organisiert und effizient zu halten.

In diesem Artikel haben wir die Grundlagen von Bash-Funktionen behandelt, einschließlich deren Definition und Aufruf, zehn praktische Funktionsbeispiele und häufige Anwendungsfälle, die Ihnen den Einstieg in Ihre eigenen Automatisierungsprojekte erleichtern sollen.

Kombiniert mit Kontrollstrukturen wie dem Bash if-AnweisungMit den Funktionen erhalten Sie die Bausteine ​​für eine leistungsstarke Automatisierung. Durch die Verwendung von Bash-Funktionen in Ihren Skripten können Sie saubereren, modulareren Code schreiben, der einfacher zu verstehen und zu warten ist.

FAQ

Können Bash-Funktionen lokale Variablen haben?

Ja. Bash-Funktionen können mithilfe des Schlüsselworts local über lokale Variablen verfügen. Dadurch wird der Gültigkeitsbereich der Variablen auf die Funktion beschränkt und verhindert, dass sie sich auf Variablen mit demselben Namen außerhalb der Funktion auswirkt.

Können Bash-Funktionen rekursiv sein?

Ja, Bash-Funktionen können rekursiv sein. Bash hat eine relativ kleine Standard-Aufrufstapelgröße. Abhängig von den rekursiven Funktionen, die Sie im Sinn haben, müssen Sie diese möglicherweise vor der Ausführung mit dem Befehl ulimit -s erhöhen.

Kann ich Bash-Funktionen in anderen Skripten verwenden?

Ja, Sie können Bash-Funktionen mithilfe des Quellbefehls (oder seiner Abkürzung .) zwischen Skripten teilen. Indem Sie eine Datei mit Ihren Funktionsdefinitionen bereitstellen, stellen Sie diese Funktionen im aufrufenden Skript zur Verfügung. Verwenden Sie für untergeordnete Prozesse export -f Funktionsname, um die Funktion zugänglich zu machen.

Kann ich Bash-Funktionen in Pipelines verwenden?

Ja, aber es sind spezielle Schritte für externe Befehle erforderlich. Innerhalb eines Skripts können Sie Daten direkt an eine Funktion weiterleiten (z. B. cat-Datei | meine_Funktion). Befehle wie xargs oder find -exec werden jedoch in einer neuen Umgebung ausgeführt. Um dort eine Funktion zu verwenden, müssen Sie sie exportieren (export -f my_func) und dann explizit Bash aufrufen (z. B. xargs bash -c ‚my_func „$@“‘).

Was ist eine Shell-Skriptfunktion?

Eine Shell-Skriptfunktion ist ein definierter Codeblock innerhalb eines Shell-Skripts, der einem bestimmten Zweck dient und von verschiedenen Teilen des Skripts aus aufgerufen werden kann. Funktionen bieten einen großen Mehrwert im Hinblick auf Code-Modularität, bessere Wiederverwendbarkeit und einfachere Wartung. Im Kontext der Bash-Skripterstellung werden Funktionen in das Gesamtskript gekapselt.

Aktie

Mehr aus dem Blog

Lesen Sie weiter.

Titelbild der besten selbstgehosteten Apps, die Sie mit Cosmos Cloud ausführen können, mit App-Panels rund um ein Cosmos-Dashboard.
Server und Betriebssystem

Die besten selbstgehosteten Apps, die Sie mit Cosmos Cloud ausführen können: Dateien, Medien, Passwörter, Automatisierung und mehr!

Vielleicht haben Sie Cosmos Cloud eingerichtet und möchten nun sehen, welche Apps gut dazu passen, oder vielleicht haben Sie sich noch nicht einmal für Cosmos entschieden und möchten einfach nur sehen, wie gut es zu Ihrer Arbeit passt

Nick SilverNick Silver 16 Min. Lektüre
Abdeckung von Portainer vs. Cosmos Cloud für die Verwaltung von Docker-Apps mit Hybrid-Setup-Diagramm und Neon-Ops vs. Zugriffsblöcken.
Server und Betriebssystem

Portainer vs. Cosmos Cloud: Beste Lösung für Docker-App-Management

Wenn Sie Docker bereits kennen und nur die sauberere Möglichkeit suchen, einen wachsenden App-Stack auszuführen, finden Sie hier die kurze Antwort auf Portainer vs. Cosmos Cloud. Portainer ist die stärkere Wahl für Direc

Nick SilverNick Silver 14 Min. Lektüre
Die Funktionsgrafik Cosmos Cloud vs. CasaOS vs. Umbrel zeigt drei selbstgehostete Pfade innerhalb einer abstrakten Cloud-Netzwerkwelt.
Server und Betriebssystem

Cosmos Cloud vs. CasaOS vs. Umbrel: Welche selbstgehostete Plattform passt zu Ihrem Setup?

Die kurze Antwort ist, dass CasaOS immer noch der einfachste Ausgangspunkt ist, Umbrel das sauberste kuratierte Gefühl hat und Cosmos Cloud sinnvoller ist, wenn Sie eine strengere Kontrolle über Doma wünschen

Nick SilverNick Silver 11 Min. Lektüre

Bereit zur Bereitstellung? Ab 2,48 $/Monat.

Unabhängige Cloud, seit 2008. AMD EPYC, NVMe, 40 Gbit/s. 14 Tage Geld-zurück-Garantie.