echo
Das echo Kommando ist eines der grundlegendsten und am häufigsten verwendeten Werkzeuge in Unix-ähnlichen Betriebssystemen wie Linux. Es wird hauptsächlich dazu verwendet, Text oder den Wert von Variablen auf die Standardausgabe (in der Regel das Terminal) zu schreiben.
Syntax
Die allgemeine Syntax des echo
Kommandos sieht folgendermaßen aus.
echo [OPTIONEN] [ARGUMENTE]
-n
Unterdrückt den abschließenden Zeilenumbruch, sodass die Ausgabe nicht automatisch in die nächste Zeile springt.
-e
Aktiviert die Interpretation von Backslash-Sequenzen, was es ermöglicht, spezielle Zeichen durch bestimmte Escape-Sequenzen darzustellen.
-E
Deaktiviert die Interpretation von Backslash-Sequenzen (dies ist die Standardverhalten von echo
).
Beispiele
Option -n
echo "Hallo Welt"
echo -n "Hallo Welt"
Hallo Welt
Hallo Welt$
Im zweiten Beispiel wird kein Zeilenumbruch angehängt, sodass die nächste Eingabeaufforderung direkt nach dem Text erscheint.
Wird oft für folgende Dinge verwendet:
- Zusammensetzen von mehrerer Ausgaben in einer Zeile
- Animation von Fortschrittsanzeigen im Terminal
Option -e
Diese Option aktiviert die Interpretation von Backslash-Escape-Sequenzen.
echo "Zeile 1\nZeile 2"
echo -e "Zeile 1\nZeile 2"
Zeile 1\nZeile 2
Zeile 1
Zeile 2
Ohne die -e
Option werden die Escape-Sequenzen als normale Zeichen behandelt. Mit der Option werden sie interpretiert und entsprechend umgewandelt.
echo -e "Name:\tHans\nAlter:\t42\nBeruf:\tEntwickler"
Name: Hans
Alter: 42
Beruf: Entwickler
Option -E
Diese Option deaktiviert explizit die Interpretation von Backslash-Escape-Sequenzen (Standardverhalten).
echo -e "Zeile 1\nZeile 2"
echo -E "Zeile 1\nZeile 2"
Zeile 1
Zeile 2
Zeile 1\nZeile 2
Escape-Sequenzen
Wenn die Option -e aktiviert ist, werden die folgenden Escape-Sequenzen erkannt.
\\
: Backslash\a
: Alarmton (BEL)\b
: Rückschritt (Backspace)\c
: Beendet die Ausgabe, es erfolgt keine weitere Ausgabe\e
: Escape-Zeichen\f
: Seitenvorschub (Form Feed)\n
: Neue Zeile\r
: Wagenrücklauf (Carriage Return)\t
: Horizontaler Tabulator\v
: Vertikaler Tabulator\0NNN
: Byte mit oktalem Wert NNN (1 bis 3 Ziffern)\xHH
: Byte mit hexadezimalem Wert HH (1 bis 2 Ziffern)
\a
Alert/Bell
Funktion: Erzeugt einen Signaltop (Bell). Bei der Ausführung wird ein akustisches Signal ausgegeben. Hier soll darauf geachtet werden, die Bell-Option in dem jeweiligen Terminal oder im System konfiguriert ist.
echo -e "Warnning\a"
\b
Backspace
Funktion: Löscht das vorherige Zeichen.
Anwendungsfälle
- Textkorrektur in der Ausgabe
- Einfache Animationen im Terminal
echo -e "Linus\bx"
Linux
Das \b
bewirkt, dass der Cursor um eine Position zurückgeht, wodurch das letzte x über das s geschrieben wird.
Im nächsten Beispiel wird diese Sequenz so oft verwendet, um ein Wort durch das andere zu überschreiben.
echo -e "Falsche\b\b\b\b\b\b\bRichtige Eingabe"
Rightige Eingabe
\c
Suppress further output
Funktion: Unterdrückt jede weitere Ausgabe, auch einen Zeilenumbruch am Ende.
Anwendungfälle
- Kontrolle über den exakten Ausgabeumfang
- Alternative zur
-n
Option, wenn mitten im Text abgebrochen werden soll.
echo -e "Nur dieser Teil wird angezeigt\cDieser Teil nicht mehr"
Nur dieser Teil wird angezeigt
\e
oder \E
(Escape Character)
Funktion: Fügt das Escape-Zeichen (ASCII 27) ein.
Anwendungsfälle
- Farbige Textausgabe im Terminal
- Textformatierung (fett, unterstrichen, etc.)
- Positionierung des Cursors im Terminal
echo -e "\e[31mRot\e[0m Normal"
“Rot” in roter Farbe, gefolgt von “Normal” in Standardfarbe.
echo -e "\e[1;33mGelb und fett\e[0m und normal"
Hier wird “Gelb und fett” in gelber und fetter Schrift, während “und normal” in Standardschrift ausgegeben.
\f
Form Feed (Seitenvorschub)
Funktion: Fügt einen Seitenvorschub ein.
Anwendungsfälle
- Formatierung von Ausgaben für Drucker
- Strukturierung von Textdateien
echo -e "Seite 1\fSeite 2"
Seite 1
Seite 2
\n
New line
Funktion: Fügt einen Zeilenumbruch ein.
echo -e "Zeile 1\nZeile 2\nZeile 3"
Zeile 1
Zeile 2
Zeile 3
\r
Carriage return
Funktion: Setzt den Cursor an den Anfang der aktuellen Zeile zurück.
Anwendungsfälle
- Aktualisierung von Informationen in derselben Zeile
- Fortschrittsanzeigen
- Countdown-Timer
echo -e "Alte Nachricht\rNeue"
Neue Nachricht
\t
Horizontal tab
Funktion: Fügt einen horizontalen Tabulator ein.
echo -e "Name:\tMax\tMustermann"
Name: Max Mustermann
\t
Vertical tab
Funktion: Fügt einen vertikalen Tabulator ein.
echo -e "Oben\vUnten"
Oben
Unten
\\
Backslash
Funktion: Fügt einen Backslash ein.
Anwendungfälle
- Escapen von Backslash-Zeichen in Ausgaben
- Darstellung von regulären Ausdrücken
- Anzeige von Pfaden in Windows-Notation
echo -e "C:\\Program Files\\Application"
C:\Program Files\Application
\0nnn
Octal value
Funktion: Fügt das Zeichen mit einem oktalen ASCII-Code NNN ein.
Anwendungsfälle
- Ausgabe von speziellen Zeichen, die nicht direkt eingegeben werden können
- Arbeit mit binären Daten
- Steuerung des Terminals über Steuerzeichen
echo -e "ASCII-Zeichen: \0101"
ASCII-Zeichen: A
\xHH
Hexadecimal value
Funktion: Fügt das Zeichen mit dem hexadezimalen Wert HH ein.
echo -e "Hexadezimales Zeichen: \x41"
Hexadezimales Zeichen: A
\uHHHH
Unicode character
Funktion: Gibt das Unicode-Zeichen mit dem hexadezimalen Wert HHHH aus.
echo -e "Euro-Symbol: \u20AC"
Euro-Symbol: €
echo -e "Griechischer Buchstabe Pi: \u03C0"
Griechischer Buchstabe Pi: π
\UHHHHHHHH
Extended unicode character
Funktion: Gibt das Unicode-Zeichen mit dem erweiterten hexadezimalen Wert HHHHHHHH aus.
echo -e "Komplexes Symbol: \U0001F600"
Komplexes Symbol: 😀
Anwendungsfälle & Beispiele
Der echo
Befehl findet in vielen Situationen Anwendung.
Anzeige von Meldungen und Informationen
echo "Das Backup wurde erfolgreich abgeschlossen."
Das Backup wurde erfolgreich abgeschlossen.
Anzeigen von Variablenwerten
name="Max Mustermann"
echo "Hallo, $name!"
Max Mustermann
Schreiben in Dateien
echo "Dies ist eine Textzeile" > datei.txt
echo "Dies ist eine weitere Zeile" >> datei.txt
Die erste Zeile schreibt den Satz “Dies ist eine Textzeile” in die Datei datei.txt
. Wenn diese Datei nicht vorhanden ist, wird sie erzeugt.
Die zweite Zeile hängt den Satz an bzw. fügt die Zeile “Dies ist eine weitere Zeile” in dieselbe datei.txt
Datei.
Ausgabe von Kommandoergebnissen
Mit echo
kann man die Ergebnisse eines anderen Kommandos, welche nach der Abfertigung in die Standard-Ausgabe (stdout) umgeleitet werden, ausgeben.
echo "Aktuelles Datum: $(date)"