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-SequenzBedeutung
\aAlarm-Ton (Beep)
\bBackspace; ein Zeichen zurück
\ccontinue; das Newline-Zeichen unterdrücken
\fForm Feed; einige Zeilen weiterspringen
\nNewline; Zeilenumbruch
\rreturn; zurück zum Anfang der Zeile
\tTabulator (horizontal)
\vTabulator (vertikal); meistens eine Zeile vorwärts
\\das Backslash-Zeichen ausgeben
\0nnnASCII-Zeichen in oktaler Form (nur sh und ksh); z. B. aus \0102 wird B (dezimal 66)
\nnnASCII-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

SteuerzeichenBeschreibung
\033[0malle Attribute zurücksetzen
\033[1mFettschrift
\033[4mUnterstreichen
\033[5mBlinken
\033[7minverse Darstellung

Tabelle mit Escape-Codes für Farbe, Hintergrundfarbe

SteuerzeichenBeschreibung
\x1b[0;30m oder \033[30mSchriftfarbe schwarz
\x1b[0;31m oder \033[31mSchriftfarbe rot
\x1b[0;32m oder \033[32mSchriftfarbe grün
\x1b[0;33m oder \033[33moder Schriftfarbe gelb
\x1b[0;34m oder \033[34mSchriftfarbe blau
\x1b[0;35m oder \033[35mSchriftfarbe magenta
\x1b[0;36m oder \033[36mSchriftfarbe türkis
\x1b[0;37m oder \033[37mSchriftfarbe weiß
\x1b[0;38m oder \033[40mHintergrund schwarz
\033[41mHintergrund rot
\033[42mHintergrund grün
\033[43mHintergrund gelb
\033[44mHintergrund blau
\033[45mHintergrund magenta
\033[46mHintergrund türkis
\033[47mHintergrund grau
Kategorie(n): Bash, IT Syntax, Shell

Schreibe einen Kommentar

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

 

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.