Benutzerdefinierte Variablen in der Bourne-Shell

Die Bourne-Shell erkennt alphanumerische Variablen, denen Zeichenfolgewerte zugeordnet werden können.

Geben Sie Folgendes ein, um einem Namen einen Zeichenfolgewert zuzuordnen:
Name=Zeichenfolge

Ein Name ist eine Folge von Buchstaben, Ziffern und Unterstreichungszeichen, die mit einem Unterstreichungszeichen oder einem Buchstaben beginnt. Um den einer Variablen zugeordneten Wert zu verwenden, müssen Sie am Anfang des Namens ein Dollarzeichen ($) hinzufügen. Damit erhält die Variable $Name den mit der Variablen Zeichenfolge angegebenen Wert. Es ist zu beachten, dass in einer Zuordnungsanweisung keine Leerzeichen rechts und links vom Gleichheitszeichen (=) stehen dürfen. Positionsgebundene Parameter können in einer Zuordnungsanweisung nicht verwendet werden. In einer Befehlszeile können mehrere Zuordnungen angegeben werden, wobei jedoch zu beachten ist, dass die Shell die Zuordnungen von rechts nach links ausführt.

Wird die Variable Zeichenfolge in doppelte (") oder einfache (') Anführungszeichen eingeschlossen, interpretiert die Shell Leerzeichen, Tabulatorzeichen, Semikolons und Zeilenvorschubzeichen innerhalb der Zeichenfolge nicht als Wortbegrenzer, sondern fügt sie unverändert in die Zeichenfolge ein.

Wenn Sie die Variable Zeichenfolge in doppelte Anführungszeichen (") einschließen, erkennt die Shell die Variablennamen in der Zeichenfolge und führt eine Variablensubstitution aus, d. h., sie ersetzt Verweise auf positionsgebundene Parameter und andere Variablennamen, denen ein Dollarzeichen ($) vorangestellt ist, durch die entsprechenden Werte, sofern vorhanden. Die Shell führt die Befehlssubstitution auch innerhalb von Zeichenfolgen aus, die in doppelte Anführungszeichen gesetzt sind.

Wenn Sie die Variable Zeichenfolge in einfache Anführungszeichen (') einschließen, ersetzt die Shell keine Variablen oder Befehle innerhalb der Zeichenfolge. Das folgende Beispiel verdeutlicht diesen Unterschied:
You:            num=875
                number1="Add $num"
                number1="Add $num"
                number2='Add $num'
System:         Add 875
You:            echo $number2
System:         Add $num
Nach der Variablensubstitution interpretiert die Shell die Leerzeichen in Zuordnungen nicht erneut. Demzufolge ergibt sich bei den folgenden Zuordnungen mit dem Ergebnis $first und $second derselbe Wert:
first='eine Zeichenfolge mit eingebetteten Leerzeichen'
second=$first
Wird auf eine Variable verwiesen, kann der Variablenname (oder die Ziffer für den positionsgebundenen Parameter) in geschweifte Klammern ({ }) eingeschlossen werden, um den Variablennamen von einer nachfolgenden Zeichenfolge abzugrenzen. Die geschweiften Klammern sind insbesondere dann erforderlich, wenn es sich bei dem unmittelbar auf den Namen folgenden Zeichen um einen Buchstaben, eine Ziffer oder ein Unterstreichungszeichen handelt und die Variable kein positionsgebundener Parameter ist:
You:            a='This is a'
                echo "${a}n example"
System:         This is an example
You:            echo "$a test"
System:         This is a test