Ausgabe

Mit dem Kommando echo geben Sie Daten an verschiedene Ziele aus: Bildschirm, Dateien (durch Umlenken der Ausgabe) oder in einer sogenannten Pipe an nachfolgende Befehle. Dabei besteht die Möglichkeit, wie in echo "Name: $name" feste Werte und Variablen zu kombinieren. Wollen Sie gleichzeitig den Namen der Variablen und dessen Wert ausgeben, nutzen Sie einen der Befehle aus Listing 8.

Listing 8

echo "\$Variable = $Variable"
echo '$Variable =' $Variable

Mit der Option -e interpretiert die Shell Steuerzeichen in der Ausgabe, mit -E unterbinden Sie dieses Verhalten. Die Option -n unterdrückt den Zeilenumbruch nach der Ausgabe. Das benötigen Sie beispielsweise, wenn die verwendete Shell die Anzeige eines Prompts bei read nicht unterstützt. Dann verwenden Sie die folgende Kombination:

echo -n "Eingabe: "; read Variable

Mit Steuerzeichen erweitern Sie die Ausgabe auf Terminal oder einer umgelenkten Ausgabe: Auf diese Weise fügen Sie Tabulatoren oder Zeilenvorschübe ein oder unterdrücken diese. Listing 9 zeigt, wie Sie diese Zeichen einsetzen, in Abbildung 1 sehen Sie das Ergebnis. Die Tabelle "Steuerzeichen" führt die möglichen Steuerzeichen auf und erläutert deren Funktion.

Listing 9

#!/bin/bash
echo -e "Tabulator: abc\tdef"
echo -e "Vertikaler Tabulator: abc\vdef"
echo -e "Neue Zeile: abc\ndef"
# Neue Zeile unterdrücken (wie -n)
echo -e "Name eingeben: \c"; read NAME; echo $NAME
Abbildung 2: Jetzt wird es bunt (Listing 10).

Steuerzeichen

Zeichen Aktion
\\ Backslash ausgeben
\a Alarm, Piepser am Terminal
\b Rücktaste
\c Neue Zeile unterdrücken
\f Seitenvorschub
\n Neue Zeile
\r Wagenrücklauf
\t Tabulator horizontal
\v Tabulator vertikal

Es besteht die Möglichkeit, die Ausgabe mit Farbe und diversen Attributen zu versehen, sofern das Terminal das unterstützt. So heben Sie wichtige Meldungen hervor oder gestalten Menüs ansprechender. Das Zusammenstellen der dazu genutzten sogenannten Escape-Sequenzen gestaltet sich dabei etwas kryptisch. Die Tabelle "Farben und Attribute" vermittelt einen Überblick der Möglichkeiten.

Farben und Attribute

Zeichen
0 ohne Effekte
1 fett
4 unterstrichen (abhängig vom Terminal)
5 blinken (abhängig vom Terminal)
7 Vorder/Hintergrund tauschen (invertieren)
22 fett zurücksetzen
24 unterstrichen zurücksetzen
25 blinken zurücksetzen
27 invers zurücksetzen
3T ANSI-Vordergrund-Farbe setzen
4T ANSI-Hintergrund-Farbe setzen
Bereiche
3 Vordergrund
4 Hintergrund
Farben
0 Schwarz
1 Rot
2 Grün
3 Braun
4 Blau
5 Magenta
6 Cyan
7 Hellgrau
9 auf Normalfarbe zurücksetzen

Sie leiten die Angaben mit einem ESC-Zeichen ein (\033) gefolgt von [. Nun folgen die gewünschten Effekte und Farben, jeweils getrennt durch ein Semikolon. Der Buchstabe m schließt die Sequenz ab. So sorgt beispielsweise folgender Befehl im Terminal für blaue Schrift:

$ echo -e "\033[0;34m"

Dabei leitet \033 die Sequenz mit dem ESC-Zeichen ein. Die Null vor dem Semikolon zeigt an, dass Sie keine Effekte wünschen. Nach dem Semikolon steht die 3 für den Vordergrund, also die Schriftfarbe, wobei diese blau erscheint (4). Mit reset setzen Sie das Terminal wieder zurück.

Listing 10 erzeugt eine kleine Maske zur Eingabe von Daten: Die Überschrift erscheint dabei unterstrichen, die Feldnamen blau, die Eingaben fett und in Schwarz, anschließend zeigt das Skript diese invers und setzt danach die Einstellungen zurück (Abbildung 2).

Listing 10

#!/bin/bash
echo ""
echo -e "\033[4;31mDateneingabe"
echo -e "\033[24;34m"
echo -e "Vorname: \t\033[1;39m\c"; read VN
echo -e "\033[22;m\033[24;34mNachname: \t\033[1;39m\c"; read NN
echo -e "\033[1;7m$VN $NN"
echo -e "\033[0;27m"
Abbildung 2: Jetzt wird es bunt (Listing 10).

Ausgabe mit Printf

Der Befehl Printf erlaubt weitgehende Anweisungen zum Formatieren der Ausgabe. Sie erzeugen auf diese Weise etwa tabellarische Datenausgaben, deren Spalten korrekt übereinanderstehen. Im Gegensatz zu Echo unterscheidet Printf verschiedene Datentypen. Dabei steht %s für eine Zeichenkette, %c für ein einzelnes Zeichen, %d für eine Ganzzahl und %f für eine Fließkommazahl.

Mit der Option -v Variable weisen Sie das formatierte Ergebnis als Wert direkt einer Variablen zu.

TIPP

Enthält eine Variable eine Zeichenkette mit Leerzeichen, müssen Sie sie beim Einsatz mit dem Operator %s in Anführungszeichen stellen.

Es gibt noch weitere Anweisungen. Für die Ausgabe von Fließkommazahlen benötigen Sie zwei Angaben: die gesamte Länge der Ausgabe, also inklusive dem Komma und den Nachkommastellen sowie die Zahl der Nachkommastellen selbst. Das Minuszeichen sorgt für eine linksbündige Ausgabe. man 3 printf gibt Aufschluss über die Operatoren zum Formatieren.

Im Listing 11 finden Sie die meisten für den Alltag notwendigen Anweisungen (Abbildung 3). So formatiert Zeile 8 den Text so, das der Gesamtplatz 8 Stellen einnimmt und die Zeichenkette 3 Stellen, die rechtsbündig ausgerichtet ist. Das Beispiel der folgenden Zeile ist vom Platz gleich gestaltet, aber linksbündig ausgerichtet.

Listing 11

#! /bin/bash
TEXT="Mustertext"
NR1=12,345
NR2=-3,4
NR3=-45
printf "Beispiel 1 (Text): %8.3s \n" $TEXT
printf "Beispiel 2 (Text): %-8.3s \n" $TEXT
printf "Beispiel 3 (Text): %-15s \n" $TEXT
printf "Beispiel 4 (Text): %15s \n" $TEXT
printf "Beispiel 5 (Zahl 1): %10.2f \n" $NR1
printf "Beispiel 6 (Zahl 2): %10.2f \n" $NR2
printf "Beispiel 7 (Zahl 3): %d \n" $NR3
printf "Beispiel 8 (Zahl 3): %.5d \n" $NR3
printf -v f "%.3s \n" $TEXT
echo -e "Beispiel 9: Wert der Variablen \$F: $F"
printf "Text: %-.3s  Zahl1: %.2f  Zahl2: %.2f\n\n" $TEXT $NR1 $NR2
Abbildung 3: Gebräuchliche Formatierungen mit Printf (Listing 11).

In den Beispielen 1 bis 4 nimmt der Text einen Platz von 8 beziehungsweise 15 Stellen ein, jeweils linksbündig und rechtsbündig formatiert. Die folgenden Zeilen zeigen Beispiele für Fließkommazahlen mit zehnstelliger Breite mit zwei Stellen nach dem Komma sowie dem Pendant mit negativen Werten.

Die Beispiele 7 und 8 zeigen die Ausgabe einer ganzen, negativen Zahl – einmal ohne besondere Formatierungen, einmal mit 5 Stellen Platz. Die vorletzten Zeilen demonstrieren das Zuweisen einer Variablen. In der letzten Zeile sehen Sie die gleichzeitige Ausgabe mehrerer Werte. Dabei ist es wichtig, die Anweisungen und Variablen in der gleichen Reihenfolge zu platzieren.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Ohne Crash durch die Bash
    Mit der Bourne-Again-Shell schreiben Linux-Anwender Skripte, die nervige und stupide Aufgaben automatisieren – etwa um auf dem Notebook Strom einzusparen.
  • Erste Schritte mit Bash-Skripten
    Das Programmieren von Shell-Skripten ist keine Hexerei. Schon mit wenigen Grundkenntnissen sparen Sie durch das Automatisieren alltäglicher Aufgaben viel Zeit.
  • Kreislauf
    Schleifen ermöglichen das mehrmalige Abarbeiten von Anweisungen. Dabei kann das begrenzende Ereignis sowohl außerhalb als auch innerhalb der Schleife liegen.
  • 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.
  • Scripted Reality
    Aus den Shell-Tipps und dem Guru-Training kennen Sie viele nützliche Kommandozeilentools. Die können Sie in kleinen Shell-Skripten zu leistungsfähigen Miniprogrammen bündeln. Im einfachsten Fall lassen Sie damit mehrere Befehle automatisch nacheinander ablaufen, doch Skripte haben noch mehr zu bieten.
Kommentare

Infos zur Publikation

LU 12/2017: Perfekte Videos

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

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

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

Stellenmarkt

Aktuelle Fragen

Broadcom Adapter 802.11n nachinstallieren
Thomas Mengel, 31.10.2017 20:06, 2 Antworten
Hallo, kann man nachträglich auf einer Liveversion, MX Linux auf einem USB-Stick, nachträglich...
RUN fsck Manually / Stromausfall
Arno Krug, 29.10.2017 12:51, 1 Antworten
Hallo, nach Absturz des Rechners aufgrund fehlendem Stroms startet Linux nicht mehr wie gewohn...
source.list öffnet sich nicht
sebastian reimann, 27.10.2017 09:32, 2 Antworten
hallo Zusammen Ich habe das problem Das ich meine source.list nicht öffnen kann weiß vlt jemman...
Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 6 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...