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
| Option | Beschreibung |
|---|---|
-n | Unterdrückt den Zeilenumbruch am Ende |
-e | Aktiviert die Interpretation von Escape-Sequenzen |
-E | Deaktiviert Escape-Sequenzen (Standard) |
Escape-Sequenzen
Mit der Option -e kannst du folgende Escape-Sequenzen verwenden:
| Sequenz | Bedeutung |
|---|---|
\\ | Backslash |
\n | Neue Zeile |
\t | Tabulator |
\r | Wagenrücklauf |
\a | Signalton (BEL) |
\b | Backspace |
\c | Beendet 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.