Variables


Shellvariablen werden erstellt, wenn ihnen ein Wert zugewiesen wird. Eine Variable kann eine Zahl enthalten, ein Zeichen, oder einen String. Bei Variablennamen wird auf Groß- und Kleinschreibung geachtet, sie können aus Buchstaben und einem Unterstrich '_' bestehen. Wertzuweisungen werden mit einem '=' Zeichen durchgeführt. Beachte, dass keine Leerzeichen um das '=' erlaubt sind.

PRICE_PER_APPLE=5
MyFirstLetters=ABC
greeting='Hello        world!'

Ein Backslash "\" wird benutzt, um spezielle Zeichen darzustellen.

PRICE_PER_APPLE=5
echo "Der Preis eines Apfels ist: \$ $PRICE_PER_APPLE"

Man kann die Variable mit ${} umgeben, um Zweideutigkeiten zu verhindern.

MyFirstLetters=ABC
echo "Die ersten 10 Buchstaben des Alphabets sind: ${MyFirstLetters}DEFGHIJ"

Eine Variable mit "" zu umgeben, sorgt dafür, dass die Leerzeichen erhalten bleiben.

greeting='Hello        world!'
echo $greeting "Jetzt mit Leerzeichen: $greeting"

Variablen können die Ausgabe eines Befehls zugewiesen werden. Dies nennt man Substitution. Substitution erreicht man, indem man den Befehl mit $() oder `` umgibt.

FILELIST=`ls`
FileWithTimeStamp=/tmp/my-dir/file_$(/bin/date +%Y-%m-%d).txt

Beachte, dass wenn das Skript läuft, wird der Befehl innerhalb der $() Klammern ausgeführt und die Ausgabe abgegriffen.

Übung

Das Ziel dieser Übung ist einen String, eine Ganzzahl und eine komplexe Variable durch Befehlsubstitution zu erstellen. Der String sollte BIRTHDATE heißen und sollte "Jan 1, 2000" enthalten. Die Ganzzahl sollte Presents genannt werden und sollte die Zahl 10 enthalten. Die komplexe Variable sollte BIRTHDAY heißen und den vollen Wochentag des Tages, in BIRHTDATE, zum Beispiel 'Samstag' (vielleicht in einer anderen Sprache). Beachte, dass der date Befehl dafür benutzt werden kann, Daten in andere Datenformate zu konvertieren. Zum Beispiel, um das Datum in $date1 zu dessen Wochentag zu konvertieren:

date -d "$date1" +%A

Copyright © learnshell.org. Read our Terms of Use and Privacy Policy