Bash Inhalte darstellen – Echo, Tput, Printf

Um Text im Terminal auszugeben, gibt es drei verschiedene Befehle bzw. Programme: echo, printf und tput. Echo und printf geben nur Text aus, mit printf kann die Ausgabe nach einem definierten Muster vorgeben werden. Mit tput besteht die Möglichkeit den Cursor auf dem Bildschirm zu bewegen oder Informationen über den Status des Terminals abzurufen bzw. zurückzusetzen.

Text und Informationen mit Echo ausgeben

Die einfachste Ausgabe mit echo besteht aus dem echo Befehl selbst und dem darauf folgenden Text oder dem Inhalt einer Variable. Ausgaben sollten zur Fehlervermeidung mit Quotes ( ” oder ‘ ) zusammengefaßt werden.

Der erste Befehl gibt reinen Text, der Zweite den Inhalt der Variable pwd und der Dritte Text und den Variablen Inhalt aus.

Wird die Ausgabe von Text und Variablen kombiniert, ist es sicherer die Variable mit geschweiften Klammern einzuklammern. Das verhindert, dass Zeichen, die direkt hinter der Variable folgen, als Variablennamen interpretiert werden. Warum das wichtig ist, wird klar, wenn z.B. die Textfarbe in einer Variable gespeichert und dann im Text aufgerufen wird.

  1. Die Variable $rot bekommt ein Steuerzeichen für die Farbe rot übergeben.
  2. echo gibt an dieser Stelle aber nicht die Variable  $rot, sondern die Variable $rotRoter aus.
  3. Das Ergebnis lautet dann, “text”, da die Variable $rotRoter nicht existiert.

Damit die Variable $rot genutzt werden kann, muss diese deshalb in geschweiften Klammern geschrieben werden. Somit ergibt sich nach obigem Beispiel die korrekt lautende Syntax wie folgt:

Die zusätzliche Option -e schaltet die Verwendung von Steuerzeichen ein.

Echo und die Steuerzeichen

Steuerzeichen sind Zeichen, die nicht direkt auf dem Bildschirm sichtbar sind. Übliche Steuerzeichen sind z.B. ein Tabulatorenschritt, Zeilenumbruch, Alarmton, Textanfang oder Textende. Für diese Zeichen sind im ASCII -Zeichencode Steuerzeichen mit den Codewerten 0 bis 31 reserviert. Echo verarbeitet Steuerzeichen nur, wenn die Option -e gesetzt wurde.

…ertönt beim zweiten Befehl ein Alarm-Ton.

Standardmäßig beendet der echo Befehl die Ausgabe immer mit einem Zeilenumbruch. Der Zeilenumbruch kann auf 2 Arten unterbunden werden. Entweder mit dem Steuerzeichen \c am Ende der Ausgabe bei gesezter -e Option:

Oder direkt beim Aufruf des echo Befehls mit der Option -n:

Die Folgende Tabelle zeigt die Steuerbefehle des echo Befehls in der Bash-Shell

Escape-Sequenz Bedeutung
\a Alarm-Ton (Beep)
\b Backspace; ein Zeichen zurück
\c continue; das Newline-Zeichen unterdrücken
\f Form Feed; einige Zeilen weiterspringen
\n Newline; Zeilenumbruch
\r return; zurück zum Anfang der Zeile
\t Tabulator (horizontal)
\v Tabulator (vertikal); meistens eine Zeile vorwärts
\\ das Backslash-Zeichen ausgeben
\0nnn ASCII-Zeichen in oktaler Form (nur sh und ksh); z. B. aus \0102 wird B (dezimal 66)
\nnn ASCII-Zeichen in oktaler Form (nur Bash); z. B. aus \102 wird wird B (dezimal 66)

Farben für Schrift und Hintergrund bestimmen mit Echo

Um bei der Textausgabe mit echo die Farbe zu ändern, werden Steuerzeichen genutzt, die Textattribute wie Farbe, Fettschrift oder Hintergrundfarbe verändern.

Dazu gibt es verschiedene Möglichkeiten bzw. Zeichenketten. Die sehr schwer lesbare Variante sieht so aus und sämtliche Zeichen müssen von Anführungszeichen umklammert werden:

Wie zuvor, funktionieren die Steuerzeichen nur, wenn die Option -e gesetzt wurde. Die Zeichenkette für Farbe ist immer die gleiche. Zuerst wird Sie mit \033[ eingeleitet, dann folgt eine Zahl z.B. 33 für Gelb und abschließend ein m.

Um alle Attribute wieder zurückzusetzen, nutzt man \033[0m.

Um so z.B. einen Satz in gelber Schrift auszugeben, eine Variable – hier eine Zufallszahl mit $RANDOM in blau und dann wieder alles auf Null zu setzen, sieht der echo Befehl dann so aus.

Diese Art der Farbausgabe erfolgt dann für jegliche echo Syntax und wird schnell unübersichtlich. Daher empfiehlt es sich die Farbcodes in Variablen zu schrieben und diese dann mit dem Echo Befehl auszurufen:

Der Aufruf der Farbcodes erfolgt dann über die Variable :

Tabelle mit Codes Texteigenschaften

Steuerzeichen Beschreibung
\033[0m alle Attribute zurücksetzen
\033[1m Fettschrift
\033[4m Unterstreichen
\033[5m Blinken
\033[7m inverse Darstellung

Tabelle mit Escape-Codes für Farbe, Hintergrundfarbe

Steuerzeichen Beschreibung
\x1b[0;30m oder \033[30m Schriftfarbe schwarz
\x1b[0;31m oder \033[31m Schriftfarbe rot
\x1b[0;32m oder \033[32m Schriftfarbe grün
\x1b[0;33m oder \033[33m oder Schriftfarbe gelb
\x1b[0;34m oder \033[34m Schriftfarbe blau
\x1b[0;35m oder \033[35m Schriftfarbe magenta
\x1b[0;36m oder \033[36m Schriftfarbe türkis
\x1b[0;37m oder \033[37m Schriftfarbe weiß
\x1b[0;38m oder \033[40m Hintergrund schwarz
\033[41m Hintergrund rot
\033[42m Hintergrund grün
\033[43m Hintergrund gelb
\033[44m Hintergrund blau
\033[45m Hintergrund magenta
\033[46m Hintergrund türkis
\033[47m Hintergrund grau

CC_BY_NC_SAby Speefak

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Back To Top