navigation Navigation


Variablen


In der Linux-Shell sind Variablen Speicherorte, die Daten enthalten können, die von Skripten, Programmen oder Benutzern verwendet werden. Sie sind wesentliche Werkzeuge zur Steuerung von Skripten und der Konfiguration der Umgebung. Lokale Variablen sind innerhalb der aktuellen Shell-Instanz sichtbar und temporär, während Umgebungsvariablen globaler Natur sind und in untergeordnete Prozesse vererbt werden können. Die richtige Handhabung dieser Variablen ist entscheidend für die effektive Nutzung von Shell-Skripten und das Arbeiten in der Linux-Umgebung.

Es gibt zwei Hauptarten von Variablen in einer Shell.

  • Lokale Variablen
  • Umgebungsvariablen

Diese beiden Arten von Variablen spielen eine entscheidende Rolle bei der Ausführung von Skripten und der Konfiguration der Shell-Umgebung.

Lokale Variablen

Lokale Variablen sind Variablen, die innerhalb der aktuellen Shell-Instanz definiert und verwendet werden. Diese Variablen sind nur innerhalb der aktuellen Shell-Sitzung oder innerhalb des aktuellen Skripts sichtbar und existieren nur so lange, wie die Shell-Instanz aktiv ist.

Beispiele
mein_name="User"
echo "Mein Name ist $mein_name"

zahl=42
echo "Die Zahl ist $zahl"
Mein Name ist User
Die Zahl ist 42

Erklärung

  • mein_name="User": Erstellt eine lokale Variable mit dem Namen mein_name und weist ihr den Wert User zu.
  • zahl=42: Erstellt eine weitere lokale Variable mit dem Namen zahl und weist ihr den Wert 42 zu.
  • echo: Mit echo werden die Sätze ausgegeben, während die Variablen nach ihren Werten aufgelöst werden.

Lokale Variablen werden nicht an untergeordnete Prozesse oder andere Shell-Sitzungen weitergegeben.

Umgebungsvariablen

Umgebungsvariablen sind eine spezielle Art von Variablen, die in der gesamten Shell-Umgebung, einschließlich untergeordneter Prozesse, sichtbar sind. Sie werden häufig verwendet, um Informationen wie den Pfad zu Programmsuche (PATH), den Benutzernamen (USER) und andere Systemeinstellungen zu speichern.

Beispiele
export editor="vim"
echo "Der bevorzugte Editor ist $editor"
Der bevorzugte Editor ist vim

Erklärung

export editor="vim": Erstellt eine Umgebungsvariable mit dem Namen editor und weist ihr den Wert „vim“ zu.

Durch die Verwendung von export wird die Variable in die Umgebung exportiert und steht somit auch in untergeordneten Prozessen zur Verfügung.

Arbeiten mit Variablen

Die Manipulation und Bearbeitung von Variablen in einer Linux-Shell ermöglicht es, Daten effizient zu verwalten und Skripte dynamisch zu gestalten.

Zuweisen von Werten

Um einer Variable in einer Shell einen Wert zuzuweisen, verwendet man das „=“ Zeichen. Wichtig ist, dass keine Leerzeichen zwischen dem Variablennamen, dem „=“ Zeichen und dem zugewiesenen Wert stehen.

Beispiel
var_one="Value one"
anzahl=10
pfad="/usr/local/bin"
summe=$((5 + 3))

Erklärung

  • var_one="Value one": Weist der Variablen var_one den String „Value one“ als Wert zu.
  • anzahl=10: Weist der Variable anzahl den Wert 10 zu.
  • pfad="/usr/local/bin": Weist der Variable pfad den Pfad “/usr/local/bin” zu.
  • summe=$((5 + 3)): Berechnet die Summe der Zahlen 5 und 3 und weist das Ergebnis der Variable summe zu. (Doppelte Klammer beachten)

Zugriff auf Variablen

Um den Wert einer Variable zu verwenden oder auszugeben, setzt man ein $ vor den Namen der Variable.

Beispiel
echo $var_one
echo "Der Wert ist $var_one und die Zahl ist $anzahl"
Value one
Der Wert ist Value one und die Zahl ist 10

Mit echo gibt man die Werte der Variablen aus. Bei Verwendung innerhalb eines String mit "" wird der Variablenwert aus der Variable ausgelesen.


Ändern des Wertes einer Variable

Man kann den Wert einer bestehenden Variable jederzeit ändern, indem man ihr einfach einen neuen Wert zuweist.

Beispiel
zahl=5
echo $zahl

zahl=10
echo $zahl
5
10

Variablen in Strings verwenden

Variablen können direkt in Zeichenketten verwendet werden. Zu beachten ist, dass man das doppelte Quoting ("") verwendet, da sonst die Variablen nicht aufgelöst, sondern direkt als String (Name der Variable) ausgegeben wird.

Beispiel: Auflösung der Variable
greeting="Hallo"
echo "$greeting Welt"
Hallo Welt

Im nächsten Beispiel sieht man die Verwendung mit einfachem Quoting. Hierbei wird $greeting direkt als Text ausgegeben.

Beispiel: Ausgabe als Text
greeting="Hallo"
echo '$greeting Welt'
$greeting Welt

Ersetzen von Text in einer Variable

Die Shell bietet die Möglichkeit, bestimmte Teile des Inhalts einer Variable durch andere Zeichenfolgen zu ersetzen.

Beispiel: Wort ersetzen
text="Hallo Welt"
echo ${text/Welt/WordPress}
Hallo WordPress

In diesem Beispiel wurde „Welt“ durch „WordPress“ ersetzt.

Im nächsten Beispiel werden bestimmte einzelne Zeichen in einem String ersetzt.

Beispiel: Zeichen ersetzen
text="Hallo Welt"
echo ${text//l/L}
HaLLo WeLt

Im diesem Beispiel wurden alle „l“ durch ein „L“ ersetzt.


Länge von Variable

Man kann die Länge des Inhalts einer Variablen (d.h. die Anzahl der Zeichen) berechnen.

Beispiel
text="Hallo Welt"
length_of_var=${#text}
echo $length_of_var
10

Numerische Variablen

Shell-Variablen speichern standardmäßig alle Werte als Zeichenketten. Um mit numerischen Werten zu arbeiten, kann man für arithmetische Operationen spezielle Syntax (( ... )) verwenden.

Beispiele
a=5
b=3

summe=$((a + b))
echo $summe

produkt=$((a * b))
echo $produkt
8
15

Auch kann man Werte erhöhen oder verringern, was meist in Schleifen nützlich sein kann.

Beispiel
a=5
b=3

a=$((a + 1))
echo $a

b=$((b - 1))
echo $b
6
2

Array Variablen

Shell-Variablen können auch Arrays sein, was es ermöglicht, mehrere Werte unter einem einzigen Variablennamen zu speichern.

Beispiele: Alle Elemente ausgeben
fruits=("Apfel" "Banane" "Orange")
echo ${fruits[@]}
Apfel Banane Orange

Mit der Syntax ${my_array[@]} können alle Elemente eines Arrays ausgegeben werden.

Beispiel: Elemente per Index abrufen
fruits=("Apfel" "Banane" "Orange")
echo ${fruits[1]}
echo ${fruits[2]}
Banane
Orange

Um Elemente per Index auszugeben, wird der Index (beginnend bei 0) in den eckigen Klammern nach dem Array-Namen angegeben.

Wenn man die Länge eines Arrays, also die Anzahl der Elemente in einem Array (Variable) ermitteln möchte, sollte „#“ und die Syntax zur Ausgabe von allen Elementen verwendet werden.

Beispiel
fruits=("Apfel" "Banane" "Orange")
echo ${#fruits[@]}
3