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
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ä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 02/2016: Alt-PCs flott machen

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!       

Der Tipp der Woche

Schon gewußt?

14.11.2015

Auch unter Ubuntu 15.10 kann man wieder mit dem Startmedienersteller (alias Startup Disk Creator) ein Live-System auf einem USB-Stick einrichten. ...

Fehler des Startmedienerstellers von Ubuntu 15.10 umgehen

Aktuelle Fragen

Tails Update
Val Lerie, 11.01.2016 10:51, 0 Antworten
Hallo zusammen, updaten > update Speichern unter > Persistent nicht möglich, mit der Meldung;...
Recoll
Jürgen Heck, 20.12.2015 18:13, 4 Antworten
Wie kann man mit Recoll nach bestimmten Zeichen/Satzzeichen bzw. Zeichenkombinationen suchen, z....
Wings Platinum 4 auf Linux?
Bodo Steguweit, 18.12.2015 11:37, 4 Antworten
Hallo in die Runde ich nutze für meine Diashows Wings Platinum 4 als Diareferent. Arbeite jetzt...
Bandbreite regulieren
Georg Armani, 25.11.2015 16:50, 1 Antworten
Hallo, ich bin ein Neuling in Sachen Linux und hoffe auf Hilfe. Ich habe zwei Windows Rechner...
Windows 10 verhindert LINUX
Hans Wendel, 17.11.2015 17:47, 7 Antworten
Hallo alle, mit einem W10-Laptop (vorher war Win7) wollte ich LINUX ausprobieren. Alles, was ni...