Benutzerdefinierte Variablen erstellen

ShellBeginner
Jetzt üben

Einführung

In früheren Labs haben Sie vorhandene Variablen wie User betrachtet. Jetzt erstellen Sie Ihre eigenen „Haftnotizen“.

Eine Variable ist einfach ein Name, der Text speichert.

Wenn Sie eine Variable erstellen, ist sie jedoch zunächst privat und nur in Ihrer aktuellen Shell verfügbar. Damit andere Programme darauf zugreifen können, müssen Sie sie „exportieren“.

Dieser Unterschied zwischen einer Shell-Variable und einer Umgebungsvariablen gehört zu den zentralen Konzepten dieses Moduls. Nicht jede Variable wird automatisch Teil der Umgebung, die untergeordnete Prozesse sehen.

In diesem Lab werden Sie:

  • eine Variable MYCAFE erstellen,
  • ihren Inhalt auslesen,
  • sie „exportieren“,
  • überprüfen, dass sie in einer zweiten Shell funktioniert.

Variable erstellen

Erstellen Sie eine Variable namens MYCAFE und weisen Sie ihr den Wert „espresso“ zu.

Eine Variable zu erstellen ist so, als würden Sie etwas auf eine Haftnotiz schreiben.

Führen Sie Folgendes aus:

MYCAFE="espresso"

Wichtig: Verwenden Sie keine Leerzeichen vor oder nach dem Zeichen =.

  • Richtig: MYCAFE="espresso"
  • Falsch: MYCAFE = "espresso"

Wenn Sie Leerzeichen verwenden, interpretiert die Shell MYCAFE als Befehl.

Dieses Beispiel zeigt gut, dass die Shell-Syntax auf Leerzeichen reagiert. In der Shell dienen Leerzeichen nicht nur der optischen Formatierung. Sie trennen häufig Wörter und Argumente und haben dadurch eine echte syntaktische Bedeutung.

Variable ausgeben

Überprüfen Sie nun, ob der Wert gespeichert wurde.

Um auf den Wert zuzugreifen, verwenden Sie ein Dollarzeichen $.

Führen Sie Folgendes aus:

echo $MYCAFE

Ausgabe:

espresso

Wenn Sie das $ weglassen, gibt echo lediglich das Wort „MYCAFE“ aus.

Variable exportieren

Im Moment ist MYCAFE eine lokale Variable. Sie können sie sich wie eine Notiz in Ihrem privaten Notizbuch vorstellen.

Damit andere Programme darauf zugreifen können, müssen Sie die Variable exportieren. Dadurch wird sie zu einer Umgebungsvariablen – ähnlich wie eine Mitteilung an einem schwarzen Brett.

Sie können sich export als Anweisung an die Shell vorstellen: „Übernimm diese Variable, wenn du untergeordnete Programme startest.“ Ohne export bleibt der Wert ausschließlich in der aktuellen Shell verfügbar.

Führen Sie Folgendes aus:

export MYCAFE

Jetzt wird MYCAFE an jedes Programm weitergegeben, das Sie aus dieser Shell starten.

In einer untergeordneten Shell testen

Überprüfen Sie die Funktion, indem Sie eine „untergeordnete“ Shell starten.

  1. Starten Sie eine neue bash-Sitzung:
bash

Sie befinden sich jetzt in einem neuen Shell-Prozess.

  1. Überprüfen Sie, ob dieser Prozess MYCAFE kennt:
echo $MYCAFE

Ausgabe:

espresso

Die Variable funktioniert! Die untergeordnete Shell hat den Wert geerbt.

Vererbung ist hier das entscheidende Konzept. Untergeordnete Prozesse beginnen häufig mit einer Kopie der Umgebung des übergeordneten Prozesses. Deshalb sind exportierte Variablen eine so verbreitete Möglichkeit, Kontext an Skripte und Befehle weiterzugeben.

  1. Beenden Sie die untergeordnete Shell und kehren Sie zur übergeordneten Shell zurück:
exit

Zusammenfassung

In diesem Lab haben Sie den Lebenszyklus einer Variable geübt:

  • Erstellen: MYCAFE="espresso" (Keine Leerzeichen!)
  • Auslesen: echo $MYCAFE (Vergessen Sie das $ nicht.)
  • Weitergeben: export MYCAFE (Dadurch wird die Variable für untergeordnete Prozesse verfügbar.)

Genau auf diese Weise richtet das System Ihre Umgebung (PATH, USER usw.) ein, noch bevor Sie sich anmelden!