Schritt-für-Schritt-Anleitung zum Erstellen eines Shell-Skripts unter Linux
08:43, 05.06.2026
Shell-Skripte sind eine hervorragende Möglichkeit, Aufgaben zu automatisieren und Befehle unter Linux effizient auszuführen. Dieser Leitfaden hilft Ihnen dabei, sich von den Grundlagen an einzuarbeiten, auch wenn Sie noch keine Erfahrung damit haben.
Ein Shell-Skript schreiben
Um ein Shell-Skript zu erstellen, öffne einen beliebigen Texteditor wie nano, vim oder gedit.
Geben Sie Ihre Befehle ein und speichern Sie die Datei mit der .shextension.
Beispiel:
#!/bin/bash
echo "Hello, World!"
Um das Skript ausführbar zu machen, verwenden Sie diesen Befehl:
chmod +x myscript.sh
Führen Sie es dann aus:
./myscript.sh
Kommentare in einem Shell-Skript hinzufügen
Kommentare helfen dabei, Ihren Code zu erklären. In Shell-Skripten beginnen Kommentare mit #.
Beispiel:
# Dies ist ein Kommentar
echo "Das Skript wird ausgeführt..."
Verwenden Sie Kommentare, um Ihren Code für sich selbst und andere verständlicher zu machen.
Arbeiten mit Variablen in Shell-Skripten
Variablen speichern Werte, die Sie wiederverwenden können.
Beispiel:
name="Alice"
echo "Hallo, $name"
Es ist nicht erforderlich, den Typ zu deklarieren. Sie können die Variable direkt zuweisen und verwenden.
Angabe des Shell-Skript-Interpreters
Die erste Zeile in einem Shell-Skript wird als Shebang bezeichnet. Sie teilt dem System mit, welcher Interpreter verwendet werden soll.
Beispiel:
#!/bin/bash
Fügen Sie diese Zeile immer am Anfang Ihres Skripts ein, damit es ordnungsgemäß ausgeführt wird.
Verwendung von Vergleichsoperatoren
Mit Vergleichsoperatoren können Sie Werte vergleichen, was für die Entscheidungsfindung in Skripten nützlich ist.
Vergleich von ganzzahligen Werten
Verwenden Sie für numerische Vergleiche diese Operatoren:
Vergleich von Ganzzahlen
Operator | Beschreibung |
-eq | ist gleich |
-ne | ist nicht gleich |
-gt | ist größer als |
-ge | ist größer oder gleich |
-lt | ist kleiner als |
-le | ist kleiner oder gleich |
Beispiel:
a=10
b=5
if [ $a -gt $b ]; then
echo "$a ist größer als $b"
fi
Vergleichen von Zeichenketten in Shell-Skripten
Um Textwerte (Zeichenketten) zu vergleichen, verwenden Sie diese Operatoren:
Zeichenkettenvergleich
Operator | Beschreibung |
== | ist gleich |
!= | ist ungleich |
\< | ist kleiner als, in ASCII-alphabetischer Reihenfolge |
\> | ist größer als, in ASCII-alphabetischer Reihenfolge |
Beispiel:
str1="apple"
str2="banana"
if [ "$str1" \< "$str2" ]; then
echo "$str1 kommt alphabetisch vor $str2"
fi
Implementierung von bedingten Anweisungen
Bedingte Anweisungen ermöglichen es Ihrem Skript, basierend auf einer Bedingung zu entscheiden, was zu tun ist.
Verwendung der if-Anweisung
Die if -Anweisung prüft eine Bedingung und führt Befehle aus, wenn diese wahr ist.
Beispiel:
if [ -e myfile.txt ]; then
echo "Datei existiert"
fi
Implementierung der If-Else-Logik
Sie können else verwenden, um den Fall zu behandeln, in dem eine Bedingung falsch ist.
Beispiel:
if [ -d myfolder ]; then
echo "Ordner existiert"
else
echo "Ordner existiert nicht"
fi
Sie können auch elif für zusätzliche Bedingungen verwenden:
if [ $a -gt $b ]; then
echo "A ist größer"
elif [ $a -eq $b ]; then
echo "A ist gleich"
else
echo "A ist kleiner"
fi
Schleifen in Shell-Skripten verstehen
Mit Schleifen können Sie Befehle mehrfach wiederholen. Es gibt zwei gängige Schleifen: while und for.
Die While-Schleife
Die while Schleife läuft, solange die Bedingung wahr ist.
Beispiel:
count=1
while [ $count -le 5 ]; do
echo "Count ist $count"
((count++))
done
Die For-Schleife
Die for Schleife durchläuft eine Liste oder einen Bereich.
Beispiel:
for i in 1 2 3 4 5; do
echo "Zahl: $i"
done
Sie können auch Dateien durchlaufen:
for file in *.txt; do
echo "Datei gefunden: $file"
done
Umgang mit Positionsargumenten in Skripten
Shell-Skripte können Argumente von der Befehlszeile entgegennehmen.
Beispiel:
#!/bin/bash
echo "Skriptname: $0"
echo "Erstes Argument: $1"
echo "Zweites Argument: $2"
Führen Sie das Skript aus:
./myscript.sh hello world
Ausgabe:
Skriptname: ./myscript.sh
Erstes Argument: hello
Zweites Argument: world
Erfassen und Speichern von Befehlsausgaben
Sie können das Ergebnis eines Befehls mit $(command) erfassen.
Beispiel:
current_date=$(date)
echo "Heute ist $current_date"
Dies speichert die Ausgabe von date in einer Variablen.
Exit-Codes in Shell-Befehlen verstehen
Jeder Befehl gibt einen Exit-Code zurück. Sie können diesen mit $? überprüfen.
- 0 bedeutet Erfolg.
- Jeder andere Wert bedeutet, dass ein Fehler aufgetreten ist.
Beispiel:
ls /notfound
if [ $? -ne 0 ]; then
echo "Verzeichnis nicht gefunden"
fi
Dies hilft bei der Erkennung von Fehlern in Skripten.