Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Willkommen zum zweiten Artikel unserer technischen Wiki-Serie über Linux und Bash-Programmierung!
Nachdem wir in unserem ersten Beitrag die Grundlagen des Erstellens und Ausführens von Bash-Skripten kennengelernt haben, widmen wir uns heute einem zentralen Konzept der Bash-Programmierung: der Verwendung von Variablen. Variablen sind unverzichtbare Bausteine für jedes Skript und ermöglichen es dir, Daten zu speichern, zu manipulieren und wiederzuverwenden.
Was sind Variablen in Bash?
Variablen in Bash sind äußerst vielseitig und können verschiedene Arten von Daten speichern, von einfachen Zeichenketten bis hin zu komplexen Datenstrukturen. Im Gegensatz zu vielen anderen Programmiersprachen müssen Variablen in Bash nicht explizit deklariert oder typisiert werden. Dies macht die Arbeit mit ihnen einerseits sehr flexibel, erfordert andererseits aber auch besondere Sorgfalt bei ihrer Verwendung.
In diesem Artikel werden wir uns eingehend mit der Deklaration, Zuweisung und Verwendung von Variablen in Bash beschäftigen. Wir werden verschiedene Arten von Variablen kennenlernen, darunter lokale und globale Variablen, Umgebungsvariablen und spezielle Bash-Variablen. Zudem werden wir uns ansehen, wie man Variablen in verschiedenen Kontexten wie Funktionen, Schleifen und bedingten Anweisungen einsetzt.
In Bash ist die Deklaration und Zuweisung von Variablen denkbar einfach. Du verwendest einfach den Variablennamen, gefolgt von einem Gleichheitszeichen und dem Wert:
mein_name="Max Mustermann"
alter=30
pi=3.14159
Wichtig: Beachte, dass zwischen dem Variablennamen, dem Gleichheitszeichen und dem Wert keine Leerzeichen stehen dürfen. Andernfalls interpretiert Bash dies als Befehl mit Argumenten.
Um auf den Wert einer Variable zuzugreifen, verwendest du das Dollarzeichen ($)
vor dem Variablennamen:
echo $mein_name
echo "Ich bin $alter Jahre alt."
Für eine bessere Lesbarkeit und um Mehrdeutigkeiten zu vermeiden, kannst du den Variablennamen auch in geschweifte Klammern setzen:
echo "Der Wert von Pi ist ${pi}."
Bei der Verwendung von Variablen in Anführungszeichen gibt es einen wichtigen Unterschied zu beachten:
Doppelte Anführungszeichen ("
) erlauben die Variablensubstitution:
echo "Mein Name ist $mein_name"
Einfache Anführungszeichen ('
) verhindern die Variablensubstitution:
echo 'Mein Name ist $mein_name'
Lokale Variablen sind nur innerhalb eines bestimmten Bereichs, typischerweise einer Funktion, gültig. Sie werden mit dem Schlüsselwort local
deklariert:
function gruss() {
local grusskarte="Hallo, $1!"
echo $grusskarte
}
gruss "Welt"
echo $grusskarte # Dies wird einen leeren Wert ausgeben
Globale Variablen sind im gesamten Skript verfügbar. Alle Variablen, die außerhalb von Funktionen deklariert werden, sind standardmäßig global:
global_var="Ich bin überall sichtbar"
function test_funktion() {
echo $global_var
}
test_funktion # Gibt "Ich bin überall sichtbar" aus
Umgebungsvariablen sind spezielle Variablen, die von der Shell oder dem Betriebssystem gesetzt werden. Du kannst sie mit dem Befehl export
erstellen oder ändern:
export MEINE_UMGEBUNGSVARIABLE="Wichtiger Wert"
Diese Variablen sind auch für Kindprozesse sichtbar, die von deinem Skript gestartet werden.
Bash stellt eine Reihe von speziellen Variablen zur Verfügung, die nützliche Informationen enthalten:
$0
: Der Name des Skripts$1
, $2
, …: Die Positionsparameter (Argumente) des Skripts$#
: Die Anzahl der übergebenen Argumente$@
: Alle Argumente als separate Wörter$$
: Die Prozess-ID des aktuellen Skripts$?
: Der Exit-Status des zuletzt ausgeführten BefehlsHier ein Beispiel zur Verwendung einiger dieser speziellen Variablen:
#!/bin/bash
echo "Skriptname: $0"
echo "Erstes Argument: $1"
echo "Zweites Argument: $2"
echo "Anzahl der Argumente: $#"
echo "Alle Argumente: $@"
Funktionen können Variablen als Parameter erhalten und lokale Variablen definieren:
function berechne_summe() {
local a=$1
local b=$2
local summe=$((a + b))
echo $summe
}
ergebnis=$(berechne_summe 5 3)
echo "Die Summe ist: $ergebnis"
Variablen sind besonders nützlich in Schleifen, um Zähler oder temporäre Werte zu speichern:
for i in {1..5}; do
echo "Durchlauf $i"
done
counter=0
while [ $counter -lt 5 ]; do
echo "Zähler: $counter"
counter=$((counter + 1))
done
In bedingten Anweisungen können Variablen für Vergleiche und Entscheidungen verwendet werden:
alter=18
if [ $alter -ge 18 ]; then
echo "Du bist volljährig."
else
echo "Du bist minderjährig."
fi
Um dein Verständnis für die Verwendung von Variablen in Bash zu vertiefen, hier eine Übungsaufgabe:
Erstelle ein Bash-Skript, das:
Hier ist eine mögliche Lösung:
#!/bin/bash
# 1. Frage nach dem Namen
echo "Wie heißt du?"
read benutzername
# 2. Speichere das aktuelle Datum
aktuelles_datum=$(date +"%d.%m.%Y")
# 3. Definiere eine Begrüßungsfunktion
function begruessung() {
local name=$1
local datum=$2
echo "Hallo $name! Heute ist der $datum."
}
# Rufe die Begrüßungsfunktion auf
begruessung "$benutzername" "$aktuelles_datum"
# 4. Zähle die Buchstaben im Namen
namenslaenge=${#benutzername}
echo "Dein Name hat $namenslaenge Buchstaben."
# 5. Überprüfe die Namenslänge
if [ $namenslaenge -gt 5 ]; then
echo "Dein Name ist länger als 5 Buchstaben."
else
echo "Dein Name hat 5 oder weniger Buchstaben."
fi
Dieses Skript demonstriert die Verwendung von Benutzereingaben, Datums-Funktionen, benutzerdefinierten Funktionen, String-Längenberechnung und bedingten Anweisungen – alles unter Verwendung von Variablen.
Variablen sind ein grundlegender Baustein in der Bash-Programmierung. Sie ermöglichen es dir, Daten zu speichern, zu manipulieren und wiederzuverwenden, was deine Skripte dynamischer und flexibler macht. In diesem Artikel haben wir gelernt, wie man Variablen deklariert, zuweist und in verschiedenen Kontexten verwendet. Wir haben auch verschiedene Arten von Variablen kennengelernt, einschließlich lokaler und globaler Variablen, Umgebungsvariablen und spezieller Bash-Variablen.
Die effektive Nutzung von Variablen kann deine Bash-Skripte erheblich verbessern, indem sie sie lesbarer, wartbarer und leistungsfähiger machen. Mit zunehmendem Verständnis für Variablen wirst du in der Lage sein, komplexere und nützlichere Skripte zu schreiben.
In unserem nächsten Artikel werden wir uns mit Kontrollstrukturen in Bash befassen, einschließlich if-Anweisungen, Schleifen und case-Statements. Diese Konzepte bauen auf deinem Wissen über Variablen auf und ermöglichen es dir, noch ausgefeiltere Skripte zu erstellen.
Bleib dran und happy scripting!