Shell: Variablen

Variablen kann man sich als Behälter mit Namen vorstellen, in denen etwas für die spätere Verwendung aufbewahrt werden kann.

Stell dir eine Tasse vor.

Tasse als Variable, Name=Alter, Inhalt=17

Auf dem Bild hat die Variable den Namen Alter und den Inhalt 17.

Um eine Variable zu erzeugen, weist man ihr einen Inhalt zu:

$ Alter=17

Um an den Inhalt wieder heranzukommen, wird vor den Namen ein Dollarzeichen gesetzt:

$ echo Die Variable Alter hat den Inhalt $Alter

Shell: elementare Datentypen

Eben haben wir der Variablen Alter den Inhalt 17 zugewiesen. Es sieht ganz danach aus, dass der Inhalt eine Zahl ist. Es könnten aber auch die Zeichen 1 und 7 sein. Dann wäre der Inhalt unserer Variablen keine Zahl sondern eine Zeichenkette. Zeichenketten bestehen normalerweise aus Buchstaben, Zahlen und Sonderzeichen.

In unserer Shell-Programmiersprache sind die beiden wichtigsten Datentypen

Zeichenketten werden bei der Zuweisung von ticks oder quotation-marks umschlossen. Die sind notwendig, weil die shell die Leerstellen zwischen den getippten Zeichen als Wort-trenner verwendet.

Beispiel: $ Name="Fred Feuerstein"

Beispiel: $ FredsAlter=45

Shell: Variablen-Expansion

In einem shell-script und auf der Kommandozeile muss die Programmiererin oder der Benutzer eindeutig mitteilen können, was er möchte, wenn ein Variablenname getippt wird: Wir verwenden zur Demonstration das Kommando echo.

Es gibt drei Möglichkeiten:

  1. Der Inhalt der Variable soll ausgegeben werden. Das geht direkt mit

    $ echo $Alter

    $ echo "$Alter"

    Es handelt sich hier um doppelte Anführungszeichen, sogenannte rabbit-ears oder double-quotes. Variablen, die in double-quotes vorkommen, werden durch ihren Inhalt ersetzt, bevor die Verarbeitung weitergeht.

  2. Der Text $Alter soll ausgeben werden. Das geht mit

    $ echo '$Alter'

    Es handelt sich hier um einfache Anführungszeichen, sogenannte ticks oder single-quotes. Variablen, die in single-quotes vorkommen, werden nicht ersetzt. Die Zeichenkette wird unverändert verwendet.

  3. Die Ausgabe eines Kommandos soll auf der Kommandozeile erscheinen. Das geht mit sogenannten back-ticks oder back-quotes:

    $ echo `ls /usr/bin`

    Hier wird das Kommando ls /usr/bin zuerst ausgeführt, und dessen Ausgabe ersetzt dann die Zeichenkette ls /usr/bin auf der Kommandozeile, die erst nach der Ersetzung ausgeführt wird.

Zusammenfassung Variable-Expansion:

Wenn man Variablennamen verwendet, kann man entweder den Namen meinen, oder den Ihnalt. Um das präzise auszudrücken, nimmt man auf der Kommanozeile oder in shell-skripts die entsprechenden ticks.

vorherige Seite Linux/CLI

nächste Seite Ein-/Ausgabeumleitung