Linux-Dis­tri­bu­tio­nen er­mög­li­chen es Ihnen, das System selbst ein­zu­rich­ten und zu steuern. Dabei gehört der Bash-Echo-Befehl zu einem der meist­ver­wen­de­ten Befehle. Er wird in Bash-Skripten und Batch-Dateien verwendet, um einen Sta­tus­text in einer Datei oder auf Ihrem Bild­schirm aus­zu­ge­ben. Wir erläutern, wie der Linux-Echo-Befehl funk­tio­niert und wie sich zum Beispiel Farben für Schrift und Hin­ter­grund mit ihm bestimmen lassen.

Was ist der Echo-Befehl und wie funk­tio­niert er?

Der Linux-Echo-Befehl wie­der­holt das, was man ihm zu wie­der­ho­len auf­ge­tra­gen hat. Die Funktion ist äußerst simpel, aber dafür absolut notwendig. Ohne echo würden Sie zum Beispiel keine sicht­ba­ren Ausgaben von Shell-Skripten erhalten. Shell ist die Be­nut­zer­schnitt­stel­le, in der Sie un­ter­schied­li­che Befehle eingeben können, wie zum Beispiel den Linux-Tail-Befehl, den Linux-Head-Befehl, den Linux-Cat-Befehl oder aber den Linux-Echo-Befehl.

Wie funk­tio­niert der Linux-Echo-Befehl genau und wie sieht seine Syntax aus? Hier die all­ge­mei­ne Syntax des Befehls:

echo [option] [string]

Die grund­le­gen­de Funk­ti­ons­wei­se von echo ist übrigens in allen Pro­gram­mier­spra­chen die gleiche: Sie machen eine Eingabe – was in den meisten Fällen in Form einer Zei­chen­ket­te erfolgt – und diese wird ent­ge­gen­ge­nom­men und un­ver­än­dert wieder aus­ge­ge­ben.

Hinweis

Die Be­nut­zer­schnitt­stel­le oder der Kom­man­do­zei­len­in­ter­pre­ter Shell wird auch Bash-Shell genannt. Dabei ist die Bash die Standard-Shell in Linux-Dis­tri­bu­tio­nen und das Text­fens­ter, in das Sie Ihre Befehle eingeben. Das Programm echo ist ein ele­men­ta­rer Teil von Ubuntu und auf jedem System vor­in­stal­liert.

Wie lassen sich in Linux mit echo Text und In­for­ma­tio­nen ausgeben?

In unserem ersten Beispiel möchten wir einen Text und den Inhalt von Variablen in der Bash bzw. im Terminal ausgeben lassen. Um den Text „Das ist ein Beispiel“ zu schreiben, geben Sie den folgenden Code in das Terminal ein:

$ echo Das ist ein Beispiel
Das ist ein Beispiel

Damit Sie Fehler wei­test­ge­hend vermeiden, empfehlen wir, den Text in An­füh­rungs­zei­chen zu setzen:

$ echo "Das ist ein Beispiel"
Das ist ein Beispiel

Im nächsten Schritt wollen wir eine Variable ausgeben lassen. Hier reicht es aus, wenn Sie den Namen der Variablen eingeben, wie zum Beispiel PWD (für Print Working Directory bzw. Ihr Ar­beits­ver­zeich­nis). Der Befehl würde dann wie folgt aussehen:

$ echo $PWD 
/Users/Name/Desktop

Dann gibt es auch die Mög­lich­keit, die Ausgabe von Variablen mit Text zu kom­bi­nie­ren, wie in diesem Beispiel:

$ echo "Sie befinden sich im Verzeichnis: $PWD" 
Sie befinden sich im Verzeichnis: /Users/Name/Desktop
Hinweis

Für die Ausgabe von In­for­ma­tio­nen gibt es nicht nur den Bash-Echo-Befehl, sondern auch printf und tput. Dabei ist tput das kom­ple­xe­re Tool und kann auch dazu verwendet werden, um In­for­ma­tio­nen zu­rück­zu­set­zen. Mit printf und echo lassen sich jedoch nur In­for­ma­tio­nen ausgeben.

Welche Steu­er­zei­chen gibt es für echo?

Haben Sie das Grund­prin­zip des Linux-Echo-Befehls ver­stan­den, lernen Sie im nächsten Schritt, welche Steu­er­zei­chen Sie in Kom­bi­na­ti­on mit dem Kommando verwenden können. Unter Steu­er­zei­chen versteht man Zeichen, die auf dem Bild­schirm nicht direkt sichtbar sind, aber Dinge wie den Text­an­fang, das Textende oder Zei­len­um­brü­che bestimmen.

Achtung: Echo versteht Steu­er­zei­chen nur dann, wenn Sie die Option -e setzen. Im folgenden Beispiel wird "\n" deshalb nur als Text ab­ge­bil­det. (Das Steu­er­zei­chen "\n" si­gna­li­siert Newline bzw. einen Text­um­bruch.)

$ echo "\n"
\n

Fügen Sie -e hinzu, wie im folgenden Beispiel, erfolgt in Ihrem Text jedoch tat­säch­lich ein Text­um­bruch:

$ echo -e "\n"
Tipp

Der Echo-Befehl wird stan­dard­mä­ßig mit einem Zei­len­um­bruch beendet. Um dies zu un­ter­drü­cken, können Sie das Steu­er­zei­chen \c am Ende der je­wei­li­gen Ausgabe setzen.

Hier ein Überblick, welche Steu­er­zei­chen Ihnen in Bash zur Verfügung stehen: Hier ein Überblick, welche Steu­er­zei­chen Ihnen in Bash zur Verfügung stehen:

Escape-Codes Bedeutung
\a Alarm-Ton
\b Ein Zeichen zurück
\c Text­um­bruch un­ter­drü­cken
\f Zurück
\n Zei­len­um­bruch
\r Zurück zum Zei­len­an­fang
\t Tabulator (ho­ri­zon­tal)
\v Tabulator (vertikal)
\\ Ausgabe des Backlash-Zeichens
\0nnn ASCII-Zeichen in oktaler Form (nur sh und ksk)
\nnn ACSII-Zeichen in oktaler Form (nur Bash)

Wie lassen sich Farben für Schrift und Hin­ter­grund mit echo bestimmen?

Mit dem Linux-Echo-Befehl lassen sich bei der Text­aus­ga­be auch Text­at­tri­bu­te wie Farben für die Schrift und den Hin­ter­grund bestimmen. Dies funk­tio­niert, indem alle Zeichen von An­füh­rungs­zei­chen um­klam­mert werden, oder indem Sie die Farben gleich in Variablen schreiben, um die Zei­chen­ket­te lesbarer zu machen. Die erste Variante sieht wie folgt aus (eine Farbe wird immer mit \033[ ein­ge­lei­tet, 31m steht hier für die Schrift­far­be Rot):

$ echo -e "\033[31mDas ist ein roter Text"

Um nun alle Attribute zu­rück­zu­set­zen, geben Sie diese Zei­chen­ket­te ein:

$ echo -e "\033[0m"

Lesbarer wird es jedoch, wenn Sie in Ihrem Bash-Script Farben vorher als Variablen de­fi­nie­ren:

red='\033[31m'
reset='\033[0m'

Dann können Sie die Farbe einfach als Echo-Befehl aufrufen:

$ echo -e "${red}Das ist ein roter Text.${reset}Und jetzt ist der Text wieder normal."

Im Folgenden eine Übersicht zu den un­ter­schied­li­chen Escape-Codes für die un­ter­schied­li­chen Farben für Schrift und Hin­ter­grund:

Steu­er­zei­chen Bedeutung
\033[30m Schrift­far­be Schwarz
\033[31m Schrift­far­be Rot
\033[32m Schrift­far­be Grün
\033[33m Schrift­far­be Gelb
\033[34m Schrift­far­be Blau
\033[35m Schrift­far­be Magenta
\033[36m Schrift­far­be Türkis
\033[37m Schrift­far­be Weiß
\033[40m Hin­ter­grund Schwarz
\033[41m Hin­ter­grund Rot
\033[42m Hin­ter­grund Grün
\033[43m Hin­ter­grund Gelb
\033[44m Hin­ter­grund Blau
\033[45m Hin­ter­grund Magenta
\033[46m Hin­ter­grund Türkis
\033[47m Hin­ter­grund Grau

Wie lassen sich bestimmte Text­ei­gen­schaf­ten mit echo ein­stel­len?

Neben der Farbe von Schrift und Hin­ter­grund lassen sich mit dem Linux-Echo-Befehl auch Text­at­tri­bu­te wie Fett­schrift oder Un­ter­strei­chen bestimmen. Hier die Codes für ver­schie­de­ne Text­ei­gen­schaf­ten:

Steu­er­zei­chen Bedeutung
\033[0m Zu­rück­set­zen aller Attribute
\033[1m Fett­schrift
\033[4m Un­ter­strei­chen
\033[5m Blinken
\033[7m inverse Dar­stel­lung

Möchten Sie nun den roten Text in fetter Schrift schreiben, lautet der Code wie folgt:

$ echo -e "\033[1;31mDas ist ein roter Text, der fett ist."
Tipp

Wir haben auch einen Überblick aller wichtigen Linux-Befehle für Sie zu­sam­men­ge­stellt.

Zum Hauptmenü