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.
mein_name="User"
echo "Mein Name ist $mein_name"
zahl=42
echo "Die Zahl ist $zahl"Mein Name ist User
Die Zahl ist 42Erklärung
mein_name="User": Erstellt eine lokale Variable mit dem Namenmein_nameund weist ihr den WertUserzu.zahl=42: Erstellt eine weitere lokale Variable mit dem Namen zahl und weist ihr den Wert42zu.echo: Mitechowerden 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.
export editor="vim"
echo "Der bevorzugte Editor ist $editor"Der bevorzugte Editor ist vimErklä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.
var_one="Value one"
anzahl=10
pfad="/usr/local/bin"
summe=$((5 + 3))Erklärung
var_one="Value one": Weist der Variablenvar_oneden String „Value one“ als Wert zu.anzahl=10: Weist der Variableanzahlden Wert10zu.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.
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 10Mit 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.
zahl=5
echo $zahl
zahl=10
echo $zahl5
10Variablen 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.
greeting="Hallo"
echo "$greeting Welt"Hallo WeltIm nächsten Beispiel sieht man die Verwendung mit einfachem Quoting. Hierbei wird $greeting direkt als Text ausgegeben.
greeting="Hallo"
echo '$greeting Welt'$greeting WeltErsetzen von Text in einer Variable
Die Shell bietet die Möglichkeit, bestimmte Teile des Inhalts einer Variable durch andere Zeichenfolgen zu ersetzen.
text="Hallo Welt"
echo ${text/Welt/WordPress}Hallo WordPressIn diesem Beispiel wurde „Welt“ durch „WordPress“ ersetzt.
Im nächsten Beispiel werden bestimmte einzelne Zeichen in einem String ersetzt.
text="Hallo Welt"
echo ${text//l/L}HaLLo WeLtIm 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.
text="Hallo Welt"
length_of_var=${#text}
echo $length_of_var10Numerische 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.
a=5
b=3
summe=$((a + b))
echo $summe
produkt=$((a * b))
echo $produkt8
15Auch kann man Werte erhöhen oder verringern, was meist in Schleifen nützlich sein kann.
a=5
b=3
a=$((a + 1))
echo $a
b=$((b - 1))
echo $b6
2Array Variablen
Shell-Variablen können auch Arrays sein, was es ermöglicht, mehrere Werte unter einem einzigen Variablennamen zu speichern.
fruits=("Apfel" "Banane" "Orange")
echo ${fruits[@]}Apfel Banane OrangeMit der Syntax ${my_array[@]} können alle Elemente eines Arrays ausgegeben werden.
fruits=("Apfel" "Banane" "Orange")
echo ${fruits[1]}
echo ${fruits[2]}Banane
OrangeUm 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.
fruits=("Apfel" "Banane" "Orange")
echo ${#fruits[@]}3