Linux-Variablen-Deklaration

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie über Variablen in Linux-Shell-Skripten kennen, die für die Speicherung und Manipulation von Daten in Ihren Skripten unerlässlich sind. Variablen ermöglichen es Ihnen, Informationen temporär während der Skriptausführung zu speichern und diese Informationen im gesamten Code wiederzuverwenden.

Das Verständnis, wie man Variablen deklariert und verwendet, ist eine grundlegende Fähigkeit für das Schreiben von Linux-Shell-Skripten. Dieses Wissen wird Ihnen helfen, Aufgaben zu automatisieren, Konfigurationen zu verwalten und dynamischere Skripts für verschiedene Anwendungen zu erstellen.

Am Ende dieses Labs werden Sie verstehen, wie man einfache Variablen, Ganzzahlvariablen und Arrays in Bash-Skripten erstellt, die die Bausteine für fortgeschrittene Shell-Skripting-Techniken sind.

Dies ist ein Guided Lab, das schrittweise Anweisungen bietet, um Ihnen beim Lernen und Üben zu helfen. Befolgen Sie die Anweisungen sorgfältig, um jeden Schritt abzuschließen und praktische Erfahrungen zu sammeln. Historische Daten zeigen, dass dies ein Labor der Stufe Anfänger mit einer Abschlussquote von 96% ist. Es hat eine positive Bewertungsrate von 100% von den Lernenden erhalten.

Grundlegende Variablendeklaration

In diesem Schritt lernen Sie, wie Sie eine grundlegende Variable in einem Bash-Skript deklarieren und verwenden. Variablen in Linux-Shell-Skripten ermöglichen es Ihnen, Daten temporär zu speichern und später im Skript darauf zu verweisen.

Zunächst erstellen wir ein Verzeichnis für unser Projekt und navigieren dorthin:

mkdir -p ~/project
cd ~/project

Nun erstellen wir ein Skript namens variables.sh mit dem Nano-Texteditor:

nano ~/project/variables.sh

Im Editor geben Sie den folgenden Inhalt ein:

#!/bin/bash

## Deklarieren einer grundlegenden Variable
BALLOON_COLOR="red"

## Anzeigen des Variablenwerts
echo "The balloon color is: $BALLOON_COLOR"

In diesem Skript haben wir eine Variable namens BALLOON_COLOR deklariert und ihr den Wert "red" zugewiesen. Der echo-Befehl zeigt dann den Wert dieser Variable an.

Um die Datei in Nano zu speichern, drücken Sie Strg+O und bestätigen Sie mit Enter. Um Nano zu verlassen, drücken Sie Strg+X.

Nun machen wir das Skript ausführbar:

chmod +x ~/project/variables.sh

Dieser Befehl gibt der Datei die Ausführungsberechtigung, sodass Sie es wie ein Programm ausführen können.

Schließlich führen Sie Ihr Skript aus:

./variables.sh

Sie sollten die folgende Ausgabe sehen:

The balloon color is: red

Dies zeigt, dass Ihre Variable erfolgreich deklariert wurde und dass Sie auf ihren Wert mit dem $-Zeichen vor dem Variablennamen zugreifen können.

Deklarieren von Ganzzahlvariablen

In diesem Schritt lernen Sie, wie Sie Ganzzahlvariablen in Bash-Skripten deklarieren und verwenden. Das -i-Flag teilt Bash mit, dass die Variable als Ganzzahl behandelt werden soll, was für numerische Operationen nützlich sein kann.

Öffnen Sie das variables.sh-Skript erneut, um es zu bearbeiten:

nano ~/project/variables.sh

Ändern Sie das Skript, um eine Ganzzahlvariable hinzuzufügen:

#!/bin/bash

## Deklarieren einer grundlegenden Zeichenkettenvariable
BALLOON_COLOR="red"

## Deklarieren einer Ganzzahlvariable
declare -i BALLOON_SIZE=10

## Anzeigen beider Variablen
echo "The balloon color is: $BALLOON_COLOR"
echo "The balloon size is: $BALLOON_SIZE inches"

## Durchführen von Arithmetik mit der Ganzzahlvariable
declare -i DOUBLE_SIZE=BALLOON_SIZE*2
echo "Double the size would be: $DOUBLE_SIZE inches"

In diesem aktualisierten Skript:

  1. Wir haben unsere ursprüngliche Zeichenkettenvariable BALLOON_COLOR beibehalten.
  2. Wir haben eine neue Ganzzahlvariable BALLOON_SIZE mit der declare -i-Syntax hinzugefügt.
  3. Wir haben gezeigt, wie man arithmetische Operationen mit Ganzzahlvariablen durchführt.

Speichern Sie die Datei mit Strg+O und Enter, verlassen Sie dann Nano mit Strg+X.

Führen Sie das Skript nun erneut aus:

./variables.sh

Sie sollten die folgende Ausgabe sehen:

The balloon color is: red
The balloon size is: 10 inches
Double the size would be: 20 inches

Die -i-Deklaration ermöglicht es Bash, zu erkennen, dass die Variable als Ganzzahl behandelt werden soll, was arithmetische Operationen möglich macht. Dies ist besonders nützlich für Zähler, Berechnungen und numerische Verarbeitung in Ihren Skripten.

Arbeiten mit Array-Variablen

In diesem Schritt lernen Sie, wie Sie Array-Variablen deklarieren und verwenden. Arrays ermöglichen es Ihnen, mehrere Werte unter einem einzigen Variablennamen zu speichern, was nützlich ist, wenn Sie mit Sammlungen verwandter Daten arbeiten.

Lassen Sie uns unser Skript erneut bearbeiten:

nano ~/project/variables.sh

Aktualisieren Sie das Skript, um eine Array-Variable einzufügen:

#!/bin/bash

## Deklarieren einer grundlegenden Zeichenkettenvariable
BALLOON_COLOR="red"

## Deklarieren einer Ganzzahlvariable
declare -i BALLOON_SIZE=10

## Deklarieren einer Array-Variable
declare -a BALLOON_COLORS=("red" "green" "blue" "purple" "yellow")

## Anzeigen einzelner Variablen
echo "The balloon color is: $BALLOON_COLOR"
echo "The balloon size is: $BALLOON_SIZE inches"

## Anzeigen aller Array-Elemente
echo "Available balloon colors are: ${BALLOON_COLORS[*]}"

## Anzeigen spezifischer Array-Elemente
echo "The first color is: ${BALLOON_COLORS[0]}"
echo "The third color is: ${BALLOON_COLORS[2]}"

## Anzahl der Array-Elemente
echo "Number of available colors: ${#BALLOON_COLORS[@]}"

In diesem aktualisierten Skript:

  1. Wir haben unsere vorhandenen Variablen beibehalten.
  2. Wir haben eine Array-Variable BALLOON_COLORS mit der declare -a-Syntax hinzugefügt.
  3. Wir haben verschiedene Methoden gezeigt, um auf Array-Elemente zuzugreifen:
    • ${BALLOON_COLORS[*]} zeigt alle Elemente an.
    • ${BALLOON_COLORS[0]} greift auf das erste Element zu (Arrays in Bash sind nullbasiert indiziert).
    • ${#BALLOON_COLORS[@]} gibt die Anzahl der Elemente im Array an.

Speichern Sie die Datei mit Strg+O und Enter, verlassen Sie dann Nano mit Strg+X.

Führen Sie das Skript nun erneut aus:

./variables.sh

Sie sollten die folgende Ausgabe sehen:

The balloon color is: red
The balloon size is: 10 inches
Available balloon colors are: red green blue purple yellow
The first color is: red
The third color is: blue
Number of available colors: 5

Arrays sind leistungsstark, wenn Sie Sammlungen verwandter Daten verwalten müssen. Sie ermöglichen es Ihnen, mehrere Werte zu organisieren und auf sie einzeln oder als Gruppe zuzugreifen. Dies ist besonders nützlich für die Verwaltung von Listen von Elementen wie Dateinamen, Benutzerinformationen oder Konfigurationsoptionen.

Variablenmanipulation und -erweiterung

In diesem Schritt lernen Sie, wie Sie Variablen auf verschiedene Weise manipulieren und erweitern können. Diese Techniken ermöglichen es Ihnen, Variablenwerte zu ändern, ohne neue Variablen zu erstellen, was für die Textverarbeitung und Datenumwandlung nützlich ist.

Lassen Sie uns unser Skript erneut bearbeiten:

nano ~/project/variables.sh

Aktualisieren Sie das Skript, um die Variablenmanipulation zu demonstrieren:

#!/bin/bash

## Deklarieren grundlegender Variablen
NAME="linux"
MESSAGE="Hello, world!"
FILE_PATH="/home/user/documents/report.txt"

echo "Original values:"
echo "NAME = $NAME"
echo "MESSAGE = $MESSAGE"
echo "FILE_PATH = $FILE_PATH"

echo -e "\nVariable manipulation examples:"

## In Großbuchstaben umwandeln
echo "NAME in uppercase: ${NAME^^}"

## In Kleinbuchstaben umwandeln
UPPER_NAME="LINUX"
echo "UPPER_NAME in lowercase: ${UPPER_NAME,,}"

## Länge der Zeichenkette ermitteln
echo "Length of MESSAGE: ${#MESSAGE}"

## Teilzeichenkette extrahieren (beginnend an Position 7, 5 Zeichen)
echo "Substring of MESSAGE: ${MESSAGE:7:5}"

## Teil einer Zeichenkette ersetzen
echo "Replace 'world' with 'Linux': ${MESSAGE/world/Linux}"

## Dateinamen aus Pfad extrahieren
echo "Filename from path: ${FILE_PATH##*/}"

## Verzeichnis aus Pfad extrahieren
echo "Directory from path: ${FILE_PATH%/*}"

## Standardwert, wenn Variable nicht gesetzt ist
UNSET_VAR=""
echo "Default value example: ${UNSET_VAR:-default value}"

Dieses Skript demonstriert mehrere Methoden zur Manipulation von Variablen:

  1. ${NAME^^} - In Großbuchstaben umwandeln
  2. ${UPPER_NAME,,} - In Kleinbuchstaben umwandeln
  3. ${#MESSAGE} - Länge der Zeichenkette ermitteln
  4. ${MESSAGE:7:5} - Teilzeichenkette extrahieren (Position und Länge)
  5. ${MESSAGE/world/Linux} - Teil einer Zeichenkette ersetzen
  6. ${FILE_PATH##*/} - Das längste übereinstimmende Muster vom Anfang entfernen (Dateinamen extrahieren)
  7. ${FILE_PATH%/*} - Das kürzeste übereinstimmende Muster vom Ende entfernen (Verzeichnis extrahieren)
  8. ${UNSET_VAR:-default value} - Standardwert verwenden, wenn die Variable nicht gesetzt ist

Speichern Sie die Datei mit Strg+O und Enter, verlassen Sie dann Nano mit Strg+X.

Führen Sie nun das Skript aus:

./variables.sh

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

Original values:
NAME = linux
MESSAGE = Hello, world!
FILE_PATH = /home/user/documents/report.txt

Variable manipulation examples:
NAME in uppercase: LINUX
UPPER_NAME in lowercase: linux
Length of MESSAGE: 13
Substring of MESSAGE: world
Replace 'world' with 'Linux': Hello, Linux!
Filename from path: report.txt
Directory from path: /home/user/documents
Default value example: default value

Diese Techniken zur Variablenmanipulation sind äußerst nützlich für die Verarbeitung von Textdaten, die Extraktion von Informationen aus Zeichenketten und die Behandlung von Standardwerten in Ihren Skripten.

Umgebungsvariablen und Variablenbereich

In diesem letzten Schritt lernen Sie über Umgebungsvariablen, Variablenbereiche und wie Sie Variablen exportieren können, damit sie für andere Prozesse verfügbar sind.

Erstellen Sie ein neues Skript namens environment.sh:

nano ~/project/environment.sh

Fügen Sie den folgenden Inhalt hinzu:

#!/bin/bash

## Anzeigen einiger gängiger Umgebungsvariablen
echo "USER: $USER"
echo "HOME: $HOME"
echo "PATH: $PATH"
echo "PWD: $PWD"
echo "SHELL: $SHELL"

## Erstellen einer lokalen Variable
LOCAL_VAR="This is a local variable"
echo "LOCAL_VAR: $LOCAL_VAR"

## Exportieren einer Variable, damit sie für Kindprozesse verfügbar ist
export EXPORTED_VAR="This variable is exported"
echo "EXPORTED_VAR: $EXPORTED_VAR"

## Demonstrieren, wie Variablen in Subshells funktionieren
echo -e "\nVariable behavior in subshell:"
(
  echo "Inside subshell:"
  echo "  LOCAL_VAR: $LOCAL_VAR"
  echo "  EXPORTED_VAR: $EXPORTED_VAR"
  echo "  Creating subshell-only variable"
  SUBSHELL_VAR="This variable only exists in the subshell"
  echo "  SUBSHELL_VAR: $SUBSHELL_VAR"
)

echo -e "\nAfter subshell:"
echo "LOCAL_VAR: $LOCAL_VAR"
echo "EXPORTED_VAR: $EXPORTED_VAR"
echo "SUBSHELL_VAR: $SUBSHELL_VAR" ## This will be empty

## Erstellen eines Skripts, um das Exportverhalten zu testen
echo -e "\nCreating child script to test variable export..."
cat > ~/project/child_script.sh << 'EOF'
#!/bin/bash
echo "In child script:"
echo "EXPORTED_VAR: $EXPORTED_VAR"
echo "LOCAL_VAR: $LOCAL_VAR"
EOF

chmod +x ~/project/child_script.sh

## Ausführen des Kindskripts
echo -e "\nRunning child script:"
./child_script.sh

Dieses Skript demonstriert:

  1. Gängige Umgebungsvariablen (USER, HOME, PATH usw.)
  2. Der Unterschied zwischen lokalen und exportierten Variablen
  3. Das Verhalten von Variablen in Subshells (die Klammern erstellen eine Subshell)
  4. Wie exportierte Variablen von Kindprozessen geerbt werden

Speichern Sie die Datei mit Strg+O und Enter, verlassen Sie dann Nano mit Strg+X.

Machen Sie das Skript ausführbar:

chmod +x ~/project/environment.sh

Führen Sie nun das Skript aus:

./environment.sh

Die Ausgabe zeigt Ihnen, wie Variablen in verschiedenen Kontexten verhalten:

  • Umgebungsvariablen werden vom System voreingestellt.
  • Lokale Variablen existieren nur im aktuellen Skript.
  • Exportierte Variablen werden an Kindprozesse weitergegeben.
  • Variablen, die in Subshells erstellt werden, sind in der übergeordneten Shell nicht verfügbar.

Das Verständnis des Variablenbereichs ist von entscheidender Bedeutung, wenn Sie komplexe Skripte schreiben, die Kindprozesse starten oder andere Skripte einbinden. Es hilft Ihnen, den Datenfluss zwischen verschiedenen Teilen Ihres Systems zu verwalten.

Zusammenfassung

In diesem Lab haben Sie die Grundlagen der Variablendeklaration und -manipulation in Linux-Shellskripten gelernt. Sie haben Folgendes untersucht:

  • Grundlegende Variablendeklaration und -nutzung
  • Ganzzahlvariablen und arithmetische Operationen
  • Array-Variablen zur Speicherung von Datensammlungen
  • Techniken zur Variablenmanipulation für die Textverarbeitung
  • Umgebungsvariablen und Variablenbereiche

Diese Fähigkeiten bilden die Grundlage für das Schreiben von Shellskripten und sind unerlässlich für die Automatisierung von Aufgaben in Linux-Umgebungen. Variablen ermöglichen es Ihnen, dynamischere und flexiblere Skripte zu erstellen, indem Sie Daten während der Ausführung speichern und verarbeiten.

Sie können diese Techniken nun nutzen, um:

  • Konfigurationseinstellungen in Ihren Skripten zu speichern
  • Benutzerinput und Dateiinhalte zu verarbeiten
  • Textdaten und Dateipfade zu manipulieren
  • Daten zwischen verschiedenen Skripten und Prozessen zu teilen

Wenn Sie Ihre Reise in der Linux-Shellprogrammierung fortsetzen, werden Sie feststellen, dass das Beherrschen der Variablenverwendung viele Möglichkeiten eröffnet, um leistungsstarke und effiziente Automatisierungstools zu erstellen.