So verwenden Sie den Echo-Befehl unter Linux

Die echo Befehl ist perfekt zum Schreiben von formatiertem Text in das Terminalfenster. Und es muss kein statischer Text sein. Es kann Shell-Variablen, Dateinamen und Verzeichnisse enthalten. Sie können Echo auch umleiten, um Textdateien und Protokolldateien zu erstellen. Folgen Sie dieser einfachen Anleitung, um herauszufinden, wie.

Echo wiederholt, was Sie ihm sagen, es zu wiederholen

Zeus liebte es, den Olymp zu verlassen, um mit schönen Nymphen zu verkehren. Auf einer Reise sagte er einer Bergnymphe namens Echo zu überfalle seine Frau, Hera, wenn sie ihm folgte. Hera kam, um nach Zeus zu suchen, und Echo tat alles, um Hera im Gespräch zu halten. Schließlich verlor Hera die Beherrschung und verfluchte das arme Echo, sodass sie nur die letzten Worte wiederholte, die jemand anderes gesagt hatte. Was Hera Zeus angetan hat, als sie ihn eingeholt hat, kann man nur vermuten.

Und das ist so ziemlich echoist viel im Leben. Es wiederholt was es wurde gesagt, es zu wiederholen. Das ist eine einfache Funktion, aber eine wichtige. Ohne echo , könnten wir keine sichtbare Ausgabe von Shell-Skripten erhalten, denn example.

Auch wenn Sie nicht mit einer Vielzahl von Schnickschnack beladen sind, besteht eine gute Chance, dass echo hat einige Funktionen, von denen Sie nichts wussten oder die Sie vergessen hatten.

rauswerfen? rauswerfen!

Die meisten Linux-Systeme bieten zwei Versionen von echo. Die Bash-Shell hat sein eigenes echo eingebaut, und es gibt eine binäre ausführbare Version von echo sowie.


Wir können die beiden verschiedenen Versionen mit den folgenden Befehlen anzeigen:

type echo
whereis echo

Die type Befehl sagt uns ob der Befehl, den wir ihm übergeben wie es ist Streit ist eine eingebaute Shell, eine ausführbare Binärdatei, ein Alias ​​oder eine Funktion. Das berichtet es uns echo ist eine eingebaute Shell.

Sobald es eine Antwort gefunden hat, type hört auf, nach weiteren Übereinstimmungen zu suchen. Es sagt uns also nicht, ob andere Befehle mit demselben Namen im System vorhanden sind. Aber es sagt uns, welches es zuerst findet. Und das wird standardmäßig verwendet, wenn wir diesen Befehl ausführen.

Die whereis Befehl sucht nach der binären ausführbaren Datei, dem Quellcode und der Manpage für den Befehl, den wir ihm als Befehlszeile übergeben Parameter. Es sucht nicht nach Shell-Builins, da sie keine separate ausführbare Binärdatei haben. Sie sind ein integraler Bestandteil der ausführbaren Bash-Datei.

Die whereis Befehl meldet, dass echo ist eine ausführbare Binärdatei im /bin Verzeichnis.

Um diese Version von zu verwenden echo Sie müssten es explizit aufrufen, indem Sie den Pfad zur ausführbaren Datei in der Befehlszeile angeben:

/bin/echo --version


Die eingebaute Shell weiß nicht, was die --version Befehlszeilenargument ist, es wird nur im Terminalfenster wiederholt:

echo --version

Die hier gezeigten Beispiele verwenden alle die Standardversion von echo, in der Bash-Shell.

Schreiben von Text in das Terminal

Um eine einfache Textzeichenfolge in das Terminalfenster zu schreiben, geben Sie echo und die Zeichenfolge, die angezeigt werden soll:

echo My name is Dave.

Der Text wird für uns wiederholt. Aber beim Experimentieren werden Sie schnell feststellen, dass die Dinge etwas komplizierter werden können. Schau dir das an example:

echo My name is Dave and I'm a geek.

Das Terminalfenster zeigt a > unterschreibt und sitzt da und wartet. Strg+C bringt Sie zur Eingabeaufforderung zurück. Was ist da passiert?

Das einfache Anführungszeichen oder Apostroph im Wort „Ich bin“ verwirrt echo. Es interpretierte dieses einfache Anführungszeichen als Anfang eines zitierten Textabschnitts. Da kein schließendes einfaches Anführungszeichen erkannt wurde, echo wartete auf mehr Input. Es erwartete, dass weitere Eingaben das fehlende einfache Anführungszeichen enthalten würden, auf das es gewartet hatte.


Um ein einfaches Anführungszeichen in eine Zeichenfolge einzufügen, besteht die einfachste Lösung darin, die gesamte Zeichenfolge in doppelte Anführungszeichen einzuschließen:

echo "My name is Dave and I'm a geek."

Das Umschließen Ihres Textes in doppelte Anführungszeichen ist ein guter allgemeiner Rat. In Skripten grenzt es die Parameter, an die Sie übergeben werden, sauber ab echo. Dies macht das Lesen – und Debuggen – von Skripten viel einfacher.

Was ist, wenn Sie ein doppeltes Anführungszeichen in Ihre Textzeichenfolge einfügen möchten? Das ist ganz einfach, mach einfach einen Backslash vor dem doppelten Anführungszeichen (ohne Leerzeichen dazwischen).

echo "My name is Dave and I'm a "geek.""

Dies schließt das Wort “Geek” für uns in doppelte Anführungszeichen ein. Wir werden in Kürze mehr von diesen Backslash-escaped-Zeichen sehen.

Verwenden von Variablen mit echo

Bisher haben wir vordefinierten Text in das Terminalfenster geschrieben. Wir können Variablen mit verwenden echo um eine dynamischere Ausgabe zu erzeugen, in die Werte von der Shell für uns eingefügt werden. Mit diesem Befehl können wir eine einfache Variable definieren:

my_name="Dave"


Eine Variable namens my_name wurde erschaffen. Es wurde der Wert des Textes „Dave“ zugewiesen. Wir können den Variablennamen in den Strings verwenden, die wir an . übergeben echo , und der Wert der Variablen wird in das Terminalfenster geschrieben. Sie müssen ein Dollarzeichen setzen $ vor dem Variablennamen zu lassen echo weiß, dass es eine Variable ist.

Es gibt einen Vorbehalt. Wenn Sie Ihre Zeichenfolge in einfache Anführungszeichen eingeschlossen haben echo wird alles wörtlich behandeln. Verwenden Sie doppelte Anführungszeichen, damit der Variablenwert und nicht der Name der Variablen angezeigt wird.

echo 'My name is $my_name'
echo "My name is $my_name"

Etwas treffend, das ist es wert, wiederholt zu werden:

  • Die Verwendung von einfachen Anführungszeichen führt dazu, dass der Text wörtlich in das Terminalfenster geschrieben wird.
  • Die Verwendung von doppelten Anführungszeichen führt dazu, dass die Variable interpretiert wird – auch als Variablenerweiterung bezeichnet – und der Wert in das Terminalfenster geschrieben wird.

So arbeiten Sie mit Variablen in Bash

Verwenden von Befehlen mit echo

Wir können einen Befehl mit verwenden echo und füge seine Ausgabe in die Zeichenfolge ein, die in das Terminalfenster geschrieben wird. Wir müssen das Dollarzeichen verwenden $ als wäre der Befehl eine Variable, und schließen Sie den gesamten Befehl in Klammern ein.

Wir werden die verwenden Datumsbefehl. Ein Tipp ist, den Befehl allein zu verwenden, bevor Sie ihn mit verwenden echo. Wenn mit der Syntax Ihres Befehls etwas nicht stimmt, identifizieren Sie es und korrigieren es, bevor Sie es in die echo Befehl. Dann, wenn die echo Befehl tut nicht das, was Sie erwarten, Sie wissen, dass das Problem mit dem echo Syntax, weil Sie die Syntax des Befehls bereits bewiesen haben.

Versuchen Sie es also im Terminalfenster:

date +%D

Und zufrieden damit, dass wir das bekommen, was wir vom Date-Befehl erwarten, integrieren wir ihn in eine echo Befehl:

echo "Today's date is: $(date +%D)"

Beachten Sie, dass der Befehl in Klammern und im Dollarzeichen steht $ steht unmittelbar vor der ersten Klammer.

Text mit Echo formatieren

Die -e (Backslash-Escapes aktivieren) ermöglicht es uns, einige Backslash-Escape-Zeichen zu verwenden, um das Layout des Textes zu ändern. Dies sind die Zeichen mit Backslash-Escape, die wir verwenden können:

  • ein: Alarm (historisch bekannt als BEL). Dadurch wird der standardmäßige Warnton generiert.
  • B: Schreibt ein Backspace-Zeichen.
  • C: Verlässt jede weitere Ausgabe.
  • e: Schreibt ein Escape-Zeichen.
  • F: Schreibt ein Seitenvorschubzeichen.
  • n: Schreibt eine neue Zeile.
  • R: Schreibt einen Wagenrücklauf.
  • T: Schreibt eine horizontale Registerkarte.
  • v: Schreibt eine vertikale Registerkarte.
  • : Schreibt einen umgekehrten Schrägstrich.


Lassen Sie uns einige von ihnen verwenden und sehen, was sie tun.

echo -e "This is a long line of textnsplit across three linesnwithttabstontthetthirdtline"

Der Text wird in eine neue Zeile aufgeteilt, in der wir die verwendet haben n Zeichen und eine Registerkarte wird eingefügt, wo wir die verwendet haben t Zeichen.

echo -e "Herevarevverticalvtabs"

Wie n neue Zeilenzeichen, ein vertikaler Tab v verschiebt den Text in die darunter liegende Zeile. Aber im Gegensatz zu den n neue Zeilenzeichen, die v vertikale Tabulatortaste beginnt die neue Zeile nicht bei Spalte Null. Es verwendet die aktuelle Spalte.

Die b Backspace-Zeichen bewegen den Cursor um ein Zeichen zurück. Wenn mehr Text an das Terminal geschrieben werden soll, überschreibt dieser Text das vorherige Zeichen.

echo -e "123b4"

Die „3“ wird durch die „4“ überschrieben.

Die r Wagenrücklauf-Zeichen verursacht echo um zum Anfang der aktuellen Zeile zurückzukehren und weiteren Text ab Spalte Null zu schreiben.

echo -e "123r456"

Die Zeichen „123“ werden durch die Zeichen „456“ überschrieben.

Die a Alarmzeichen erzeugt einen hörbaren „Piepton“. Es verwendet den Standard-Warnton für Ihr aktuelles Design.

echo -e "Make a bleepa"


Die -n Die Option (kein Zeilenumbruch) ist keine Sequenz mit Backslash-Escape, aber sie beeinflusst die Schönheit des Textlayouts, daher werden wir sie hier besprechen. Es verhindert echo vom Hinzufügen eines Zeilenumbruchs zum Ende des Textes. Die Eingabeaufforderung erscheint direkt nach dem Text, der in das Terminalfenster geschrieben wird.

echo -n "no final newline"

Verwenden von echo mit Dateien und Verzeichnissen

Sie können verwenden echo als eine Art Arme-Mann-Version von ls. Ihre Möglichkeiten sind gering, wenn Sie verwenden echo so was. Wenn Sie eine gewisse Wiedergabetreue oder Feinsteuerung benötigen, verwenden Sie besser ls und seine Legion von Optionen.

Dieser Befehl listet alle Dateien und Verzeichnisse im aktuellen Verzeichnis auf:

echo *

Dieser Befehl listet alle Dateien und Verzeichnisse im aktuellen Verzeichnis auf, deren Name mit „D“ beginnt:

echo D*

Dieser Befehl listet alle „.desktop“-Dateien im aktuellen Verzeichnis auf:

echo *.desktop

Ja. Das spielt nicht zu echo‘s Stärken. Verwenden ls.

Schreiben in Dateien mit Echo

Wir können die Ausgabe von umleiten echo und entweder Textdateien erstellen oder in vorhandene Textdateien schreiben.


Wenn wir die verwenden > Umleitungsoperator wird die Datei erstellt, wenn sie nicht existiert. Wenn die Datei vorhanden ist, wird die Ausgabe von echo wird am Anfang der Datei hinzugefügt und überschreibt alle vorherigen Inhalte.

Wenn wir die verwenden >> Umleitungsoperator wird die Datei erstellt, wenn sie nicht existiert. Die Ausgabe von echo wird am Ende der Datei hinzugefügt und überschreibt keinen vorhandenen Inhalt der Datei.

echo "Creating a new file." > sample.txt
echo "Adding to the file." >> sample.txt
cat sample.txt

Mit dem ersten Befehl wird eine neue Datei erstellt, in die Text eingefügt wird. Der zweite Befehl fügt am Ende der Datei eine Textzeile hinzu. Die cat Befehl zeigt den Inhalt der Datei im Terminalfenster an.

Und natürlich können wir Variablen hinzufügen, um unserer Datei einige nützliche Informationen hinzuzufügen. Wenn es sich bei der Datei um eine Protokolldatei handelt, möchten wir möglicherweise einen Zeitstempel hinzufügen. Das können wir mit dem nächsten Befehl tun.

Beachten Sie die einfachen Anführungszeichen um die Parameter für die date Befehl. Sie verhindern, dass das Leerzeichen zwischen den Parametern als Ende der Parameterliste interpretiert wird. Sie stellen sicher, dass die Parameter an . übergeben werden date korrekt.

echo "Logfile started: $(date +'%D %T')" > logfile.txt
cat logfile.txt

Unser Logfile wird für uns erstellt und cat zeigt uns, dass sowohl der Datumsstempel als auch der Zeitstempel hinzugefügt wurden.

Was sind stdin, stdout und stderr unter Linux?

Das ist Echos Repertoire

Ein einfacher Befehl, aber unverzichtbar. Wenn es sie nicht gäbe, müssten wir sie erfinden.

Zeus’ Spielereien haben doch etwas Gutes getan.

Linux-Befehle
DateienTeer · pv · Katze · tac · chmod · grep · unterschied · sed · Mit · Mann · geschoben · popd · fsck · Testdisk · seq · fd · pandoc · CD · $PFAD · awk · beitreten · jq · falten · einzigartig · journalctl · Schwanz · stat · ls · fstab · Echo · weniger · chgrp · chown · Rev · aussehen · Saiten · Typ · umbenennen · Postleitzahl · entpacken · montieren · ummount · Installieren · fdisk · mkfs · rm · rmdir · rsync · df · gpg · wir · Nano · mkdir · von · ln · Patch · Konvertieren · rclon · Fetzen · srm
Prozessealias · Bildschirm · oben · nett · renice · Fortschritt · strace · System · tmux · chsh · Geschichte · bei · Charge · kostenlos · welcher · dmesg · chfn · Benutzermod · ps · chroot · xargs · tty · kleiner Finger · lsof · vmstat · Auszeit · Mauer · Jawohl · töten · Schlaf · sudo · es ist · Zeit · groupadd · Benutzermod · Gruppen · lshw · abschalten · neustarten · Halt · ausschalten · passwd · lscpu · crontab · Datum · bg · fg
Vernetzungnetstat · Klingeln · Traceroute · ip · ss · Wer ist · fail2ban · bmon · Sie · Finger · nmap · ftp · curl · wget · Wer · Wer bin ich · w · iptables · ssh-keygen · ufw

Beste Linux-Laptops für Entwickler und Enthusiasten

Related Posts