Benutzerdefinierte Variablen in der Bourne-Shell
Die Bourne-Shell erkennt alphanumerische Variablen, denen Zeichenfolgewerte zugeordnet werden können.
Name=ZeichenfolgeEin 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.
')
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$first und $second derselbe Wert: first='eine Zeichenfolge mit eingebetteten Leerzeichen'
second=$first{ }) 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