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.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Einführung in die Bash-Programmierung
    Skripte sollen meist wiederkehrende oder lästige Arbeiten automatisieren. Die Standard-Shell Bash stellt Ihnen dazu eine ganze Reige von Funktionen bereit. Dieser Artikel erklärt, wie Sie ihre eigenen Shell-Skripte schreiben.
  • Teil 2: Grundlagen der Bash
    Nachdem wir uns in der letzten Ausgabe die Metazeichen sowie die grundlegende Verwendung von Variablen angesehen haben, stoßen wir heute in das Reich der mehrdimensionalen Variablen vor und beschäftigen uns am Ende noch mit der Verarbeitung von Zeichenketten.
  • Teil 5: Kontrollstrukturen die Zweite
    Nach der Einführung in die Kontrollstrukturen und Vorstellung von einfachen Vergleichsmöglichkeiten im letzten Teil beschäftigen wir uns diesmal mit Reihenvergleichen, Schleifen, Tastatureingaben und kleinen Auswahlmenüs.
  • Teil 3: String-Verarbeitung und Reguläre Ausdrücke
    Die Grundlagen der Zeichenketten haben wir in der letzten Ausgabe gelegt. Diesmal wollen wir uns aber nicht mit einfachen Leer-Tests oder Längenanzeigen begnügen, sondern unsere Strings kräftig durcheinander wirbeln.
  • Teil 6: Funktionen und Module
    Programmiersprachen sind dazu gedacht, Computer-Befehle in menschlich lesbarer Form aufzuschreiben. Dazu gehört mehr als nur verständliche Befehle – eine übersichtliche Strukturierung und Untergliederung tut Not.
Kommentare

Infos zur Publikation

LU 12/2014: ANONYM & SICHER

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 0 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

Nach Ubdates alles weg ...
Maria Hänel, 15.11.2014 17:23, 4 Antworten
Ich brauche dringen eure Hilfe . Ich habe am wochenende ein paar Ubdates durch mein Notebook von...
Brother Drucker MFC-7420
helmut berger, 11.11.2014 12:40, 1 Antworten
Hallo, ich habe einen Drucker, brother MFC-7420. Bin erst seit einigen Tagen ubuntu 14.04-Nutzer...
Treiber für Drucker brother MFC-7420
helmut berger, 10.11.2014 16:05, 2 Antworten
Hallo, ich habe einen Drucker, brother MFC-7420. Bin erst seit einigen Tagen ubuntu12.14-Nutzer u...
Can't find X includes.
Roland Welcker, 05.11.2014 14:39, 1 Antworten
Diese Meldung erhalte ich beim Versuch, kdar zu installieren. OpenSuse 12.3. Gruß an alle Linuxf...
DVDs über einen geeigneten DLNA-Server schauen
GoaSkin , 03.11.2014 17:19, 0 Antworten
Mein DVD-Player wird fast nie genutzt. Darum möchte ich ihn eigentlich gerne abbauen. Dennoch wür...