Der echo-Befehl gibt Text auf der Standardausgabe aus. Er gehört zu den grundlegenden Werkzeugen in Shell-Skripten, um Nachrichten anzuzeigen, Variablen auszugeben oder Dateien zu erstellen.

Syntax

echo [OPTIONEN] [TEXT]
  • TEXT – Der auszugebende Inhalt.
  • OPTIONEN – Flags, die das Verhalten steuern.

Optionen

OptionBeschreibung
-nUnterdrückt den Zeilenumbruch am Ende
-eAktiviert die Interpretation von Escape-Sequenzen
-EDeaktiviert Escape-Sequenzen (Standard)

Escape-Sequenzen

Mit der Option -e kannst du folgende Escape-Sequenzen verwenden:

SequenzBedeutung
\\Backslash
\nNeue Zeile
\tTabulator
\rWagenrücklauf
\aSignalton (BEL)
\bBackspace
\cBeendet die Ausgabe

Anführungszeichen verstehen

Die Wahl der Anführungszeichen beeinflusst, wie die Shell den Text verarbeitet:

  • Doppelte Anführungszeichen "..." – Variablen und Befehlsersetzungen werden ausgewertet.
  • Einfache Anführungszeichen '...' – Der Text bleibt unverändert. Variablen werden nicht ersetzt.

Praktische Beispiele

Text ausgeben

echo "Hallo, Welt!"

Ausgabe:

Hallo, Welt!

Doppelte Anführungszeichen im Text

Schließe den Text in einfache Anführungszeichen ein oder escape die doppelten Anführungszeichen:

echo 'Das ist "wichtig"'
echo "Das ist \"wichtig\""

Beide Varianten geben aus:

Das ist "wichtig"

Zeilenumbruch unterdrücken

Mit -n bleibt der Cursor in derselben Zeile:

echo -n "Benutzername: "
read name

Das ist nützlich für Eingabeaufforderungen in Skripten.

Mehrzeilige Ausgabe mit Escape-Sequenzen

Mit -e interpretiert echo Escape-Sequenzen wie \n für neue Zeilen:

echo -e "Zeile eins\nZeile zwei\nZeile drei"

Ausgabe:

Zeile eins
Zeile zwei
Zeile drei

Variablen ausgeben

Der Inhalt von Variablen lässt sich direkt einbetten:

echo "Angemeldet als: $USER"
echo "Home-Verzeichnis: $HOME"

Ausgabe (beispielhaft):

Angemeldet als: dominic
Home-Verzeichnis: /home/dominic

Befehlsausgabe einbetten

Mit $(befehl) fügst du die Ausgabe eines anderen Befehls ein:

echo "Heute ist $(date +%A), der $(date +%d.%m.%Y)"

Ausgabe (beispielhaft):

Heute ist Donnerstag, der 16.01.2025

Text in Datei schreiben

Leite die Ausgabe mit > in eine Datei um. Bestehende Inhalte werden überschrieben:

echo "Server gestartet" > /tmp/status.txt

Mit >> hängst du Text an eine bestehende Datei an:

echo "Backup abgeschlossen" >> /tmp/log.txt

Dateien auflisten mit Wildcards

Die Shell expandiert Wildcards vor der Übergabe an echo:

echo *.txt

Gibt alle .txt-Dateien im aktuellen Verzeichnis aus:

notizen.txt todo.txt readme.txt

Farbige Ausgabe

Mit ANSI-Escape-Sequenzen kannst du Text farbig darstellen:

echo -e "\033[32mGrün\033[0m"
echo -e "\033[31mRot\033[0m"
echo -e "\033[1;34mFett Blau\033[0m"

Die Sequenz \033[0m setzt die Formatierung zurück.

Shell-Varianten

Der echo-Befehl ist in Bash, Zsh und anderen Shells integriert. Das Verhalten kann leicht variieren. Die integrierte Version hat Vorrang vor /usr/bin/echo. Dieser Artikel beschreibt die Bash-Version.

Zusammenfassung

Der echo-Befehl gibt Text und Variablen aus. Mit -n unterdrückst du den Zeilenumbruch, mit -e aktivierst du Escape-Sequenzen. Kombiniert mit Umleitungen und Befehlsersetzungen ist echo ein vielseitiges Werkzeug für Shell-Skripte.

Verwandte Artikel