Home / LinuxUser / 2000 / 12 / Teil 1: Grundlagen der BASH

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Eingedost
(161 Punkte bei 4 Stimmen)
Aufteiler
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

Hallo Welt!

Teil 1: Grundlagen der BASH

Meta-Character und Escapes

Trotz unterschiedlicher Schreibweise ist das Ergebnis der Zeilen zwei und drei identisch. Der Grund dafür sind Steuerzeichen (sogenannte Meta-Character und Control-Character), die BASH besonders interpretiert. Leerzeichen gelten als Trennung zwischen Parametern eines Befehls, wobei mehrere Leerzeichen hintereinander wie ein einziges wirken. Im Beispiel wird dem Befehl echo mit den Parametern "Hallo" und "Welt" aufgerufen. Von diesen Spezialzeichen gibt es einige, die wichtigsten sind in Tabelle 1 aufgelistet. echo gibt alle Parameter, die keine Steuer-Parameter sind, mit einem Leerzeichen getrennt hintereinander aus. Um mehr als ein Leerzeichen zwischen "Hallo" und "Welt" zu erhalten, müssen wir die Leerzeichen im Zwischenraum escapen – also der BASH mitteilen, dass dies ein echtes Leerzeichen und kein Trenner zwischen Parametern ist. Die Aufgabe es Escape-Zeichens nimmt der Backslash "\" wahr.

echo Hallo\ \ \ Welt!

Soll ein Backslash ausgegeben werden, so muss man ihn selbst escapen, also \\ schreiben. Alternativ können Sie einfache oder doppelte Anführungszeichen (sogenannte Quotes) benutzen, um Leerzeichen und die meisten anderen besonderen Zeichen ihrer Sonderstellung zu entheben:

echo "Hallo Welt!"

Die Quotes nimmt man aber am besten in kleinen Dosen ein, sie werden uns im Laufe dieser Serie immer mal wieder in einem anderen Zusammenhang begegnen und dann quasi "beiläufig" erklärt.

Variablen

Natürlich wäre es langweilig, immer nur feste Texte auszugeben. Um Werte oder Worte zwischenzuspeichern, kennt die BASH Variablen. Anders als in vielen Hochsprachen unterscheidet BASH nicht zwischen verschiedenen Typen, in jeder Variablen können ganzen Zahlen (Dezimalzahlen sind grundsätzlich nicht erlaubt), Buchstaben, Worte oder ganze Sätze gespeichert werden. Eine Variable wird über ihren Namen angesprochen. Sie braucht dabei vor ihrer ersten Verwendung nicht deklariert ("angemeldet") werden, sie entsteht automatisch durch die erste Wertezuweisung. Groß-/Kleinschreibung sind bei den Namen übrigens relevant.

#!/bin/bash
Variable=2
Variable=a
Variable=Hallo
Variable=Hallo\ Welt!
Variable="Hallo Welt!"

Um an den Wert einer Variablen heranzukommen, verwendet man ebenfalls wieder ihren Namen, mit vorangestelltem Dollar-Zeichen "$". Alternativ können Sie den Namen zusätzlich in geschweifte Klammern einfassen – diese Variante wird gebraucht, wenn dem Variablen-Namen unmittelbar ein Buchstabe folgt:

Wert=100
echo $Wert DM
echo ${Wert}DM

Die zweite Zeile liefert "100 DM", während die dritte "100DM" ohne Leerzeichen zwischen Betrag und Währungseinheit ausgibt. Ohne geschweifte Klammern hätten wir den Inhalt der (nicht existenten) Variablen $WertDM bekommen. Nicht existente Variablen haben stets keinen Wert, sie sind einfach leer.

BASH ersetzt die Variablen-Namen übrigens an fast jeder Stelle durch die Werte der Variablen, man spricht hier von der Auflösung der Variablen. Die einzige Ausnahme sind die Hochkomma "'" – was dort zwischen steht, wird nicht ersetzt. Um den Namen der Variablen inklusive Dollar-Zeichen zu bekommen, können wir alternativ auch das "$" escapen:

Wert=100
Wert="$Wert DM"
echo Inhalt der Variablen '$Wert': $Wert
echo Inhalt der Variablen \$Wert: $Wert

In der zweiten Zeile haben wir Wert eine Zeichenfolge zugewiesen, in der die Variable selbst vorkommt. Die BASH wertet dabei zunächst den Teil rechts vom Gleichheitszeichen aus, wobei für $Wert die Ziffern 100 eingesetzt werden – auf der rechten Seite steht dann "100 DM". Erst danach wird das Ergebnis der rechten Seite (der sogenannte R-Value) der Variablen auf der linken Seite des Gleichheitszeichens (dem sogenannten L-Value) zugewiesen. Diese Behauptung kann man übrigens mit einem kleinen Programmbeispiel beweisen, dazu mehr in der nächsten Folge.

Tip a friend    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 102 Punkte (13 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 05/2014

Aktuelle Ausgabe kaufen:

Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,95 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 60,60) können Sie im Medialinx-Shop bestellen.

Tipp der Woche

Bilder vergleichen mit diffimg
Bilder vergleichen mit diffimg
Tim Schürmann, 01.04.2014 12:40, 1 Kommentare

Das kleine Werkzeug diffimg kann zwei (scheinbar) identische Bilder miteinander vergleichen und die Unterschiede optisch hervorheben. Damit lassen sich nicht nur Rätsel a la „Orignial und Fäls...

Aktuelle Fragen

programm suche
Hans-Joachim Köpke, 13.04.2014 10:43, 8 Antworten
suche noch programme die zu windows gibt, die auch unter linux laufen bzw sich ähneln sozusagen a...
Funknetz (Web-Stick)
Hans-Joachim Köpke, 04.04.2014 07:31, 2 Antworten
Bei Windows7 brauche ich den Stick nur ins USB-Fach schieben dann erkennt Windows7 Automatisch, a...
Ubuntu 13.10 überschreibt immer Windows 8 Bootmanager
Thomas Weiss, 15.03.2014 19:20, 8 Antworten
Hallo Leute, ich hoffe das ich richtig bin. Ich habe einen Dell Insipron 660 Ich möchte gerne Ub...
USB-PTP-Class Kamera wird nicht erkannt (Windows-only)
Wimpy *, 14.03.2014 13:04, 15 Antworten
ich habe meiner Frau eine Digitalkamera, AGFA Optima 103, gekauft und wir sind sehr zufrieden dam...
Treiber
Michael Kristahn, 12.03.2014 08:28, 5 Antworten
Habe mir ein Scanner gebraucht gekauft von Canon CanoScan LiDE 70 kein Treiber wie bekomme ich de...