Bildschirmausgaben in Skripten

Mit dem Befehl echo lassen sich Variablen oder Zeichenketten auf dem Bildschirm darstellen. Prinzipiell funktioniert der Befehl natürlich auch in der Konsole, die Anwendung macht jedoch nur in Skripten Sinn, um mit dem Benutzer kommunizieren zu können.

Diese Ausgaben können auch in Dateien umgeleitet oder angehängt werden. Auf diese Art lassen sich mit Hilfe der Shell umfangreiche Textdateien erzeugen.

Der echo Befehl

Der echo Befehl gibt Zeichenketten auf dem Bildschirm aus. Alles was dem echo Befehl nach einem Leerzeichen folgt und nicht aus Sonderzeichen besteht wird auf dem Bildschirm ausgegeben.

Beispiel für eine Bildschirmausgabe eines Textes:

echo Hallo Welt!

gibt

Hallo Welt!

auf dem Bildschirm aus.

Die Syntax eines echo Befehls:

echo [-Optionen] Zeichenkette

Verwendung von Leerzeichen

Wichtig! Wie bei allen Shell-Befehlen gelten auch hier strikte Regeln für die Verwendung von Leerzeichen.

Mehrere Leerzeichen werden normalerweise zu einem Leerzeichen zusammengefasst, da die Shell Leerzeichen als Trennzeichen sieht. Dieses Verhalten kann durch den Einsatz von Quotes (Quoting) beeinflusst werden.

Beispiel für die Unterdrückung mehrerer Leerzeichen bei Bildschirmausgabe eines Textes:

echo Hallo              Welt!

gibt

Hallo Welt!

auf dem Bildschirm aus.

Darstellung von Variablen-Inhalten

Für die Darstellung des Inhalts einer Variablen muss dieser ein $-Zeichen vorangestellt sein. Dies bewirkt, dass die Bash auf den Inhalt der Variablen zugreift und diesen ausgibt. Auch hier können diese Ausgaben auch in Dateien umgeleitet oder angehängt werden.
Auch hier ist das richtige Quoting für die Ausgabe maßgebend.

Beispiel für die Verwendung des $-Zeichens bei Bildschirmausgabe einer Variablen:

Testvariable="Neue Variable"	# Variable initialisieren
echo $Testvariable		# Variable auf Bildschirm ausgeben
echo Testvariable		# Variablen-Bezeichner ausgeben

Bildschirmausgabe:

Neue Variable
Testvariable

Quoting

In der Shell unterliegt die Verwendung von Sonderzeichen und Leerzeichen strikten Regeln. Um eine korrekte Ausgabe (z.B. in Skripten) zu erzeugen ist der Umgang mit Hochkommas und Anführungszeichen wichtig. Dies wird in der Fachsprache als Quoting bezeichnet.

Die Ausgabe von Leerzeichen und anderen Sonderzeichen muss durch Quotes oder Backslashes maskiert werden. Andernfalls werden Sonderzeichen von der Shell als Befehle interpretiert.

Es gibt drei verschiedene Arten der Maskierung durch Quotes (Anführungszeichen):

  • "Inhalt": Doppelte Anführungszeichen " können benutzt werden, um Leerzeichen oder mehrere Leerzeichen hintereinander auszugeben. Auch bei der Trennung von Variablennamen und Text können diese verwendet werden. Dollarzeichen $ werden aber als Befehl (für den Zugriff auf Variablen) interpretiert.
  • 'Inhalt': Einfache Anführungszeichen ' bewirken, dass alle Sonderzeichen maskiert werden. Auch Dollarzeichen $ werden als Sonderzeichen ausgegeben.
  • `Befehl`: Backticks ` bewirken, dass der Bereich zwischen den Backticks als Bash-Befehl interpretiert und ausgeführt wird.
    Um die Übersichtlichkeit zu erhöhen sollte man die Backticks jedoch durch folgende Zeichenkombination ersetzen:
    $(Befehl)

Steuerzeichen für die Ausgabe

Für die Formatierung der Ausgabe eines Shell-Skripts gibt es spezielle Steuerzeichen. So können Tabulatoren oder neue Zeilen eingefügt werden.

Damit der echo-Befehl diese Steuerzeichen interpretiert, muss die -e Option aktiviert sein.
Steuerzeichen, die bei der Ausgabe eine bestimmte Aktion auslösen sollen, müssen mit einem Backslash \ maskiert werden.

Steuerzeichen    Aktion
\a Alert (Alarm): Das Terminal (der Lautsprecher am PC) piepst
\b Backspace: Rücktaste
\c Die Ausgabe einer neuen Zeile unterdrücken
\f Formfeed: Seitenvorschub
\n Newline: Neue Zeile
\r Wagenrücklauf (ohne neue Zeile)
\t Tab: Tabulator (horizontal)
\v Vtab: Tabulator (vertikal)
\\ Backslash-Zeichen