Verwendung des Echo-Befehls unter Linux

Fatmawati Achmad Zaenuri/

Der Befehl echo 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, zu wiederholen

Zeus liebte es, den Olymp zu verlassen, um sich mit schönen Nymphen zu vermählen. Auf einer Reise, Er sagte einer Bergnymphe namens Echo, er solle seine Frau verführen, Hera, wenn sie ihm folgte. Hera suchte Zeus, und Echo tat alles, um Hera im Gespräch zu halten. Schließlich verlor Hera die Beherrschung und verfluchte das arme Echo, so dass sie nur die letzten Worte wiederholte, die jemand anderes gesagt hatte. Was Hera Zeus angetan hat, als sie ihn eingeholt hat, ist jedermanns Vermutung.

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

Obwohl Sie nicht mit einer Vielzahl von Schnickschnack beladen sind, besteht eine gute Chance, dass echo einige Funktionen bietet, die Sie nicht kannten oder die Sie vergessen hatten.

echo? echo!

Die meisten Linux-Systeme bieten zwei Versionen von echo. Die Bash-Shell hat eine eigene echo eingebaut, und es gibt auch eine ausführbare Binärversion von echo .

Wir können die zwei verschiedenen Versionen sehen, indem wir die folgenden Befehle verwenden:

type echo
whereis echo

Der type Befehl sagt uns, ob der Befehl, den wir an es ist als Argument eine eingebaute Shell, eine ausführbare Binärdatei, ein Alias oder eine Funktion. Es berichtet uns, dass echo eine eingebaute Shell ist.

Sobald es eine Antwort gefunden hat, type stoppt die Suche nach weiteren Übereinstimmungen. 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 ist derjenige, der standardmäßig verwendet wird, wenn wir diesen Befehl ausgeben.

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

Der Befehl whereis meldet, dass echo eine ausführbare Binärdatei ist, die sich im Verzeichnis /bin befindet.

Um diese Version von echo zu verwenden, müssten Sie sie 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 wiederholt es nur im Terminalfenster:

echo --version

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

Text in das Terminal schreiben

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

echo My name is Dave.

Der Text wird für uns wiederholt. Aber wenn Sie experimentieren, werden Sie bald feststellen, dass die Dinge etwas komplizierter werden können. Schauen Sie sich dieses Beispiel an:

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

Das Terminalfenster zeigt ein > -Zeichen an und wartet. Strg + C bringt Sie zur Eingabeaufforderung zurück. Was ist dort passiert?

Das einfache Anführungszeichen oder Apostroph im Wort „Ich bin“ verwirrt echo. Es interpretierte dieses einfache Anführungszeichen als Beginn eines in Anführungszeichen gesetzten Textabschnitts. Da kein schließendes einfaches Anführungszeichen erkannt wurde, wartete echo auf weitere Eingaben. Es erwartete, dass weitere Eingaben das fehlende einfache Anführungszeichen enthielten, auf das es wartete.

Um ein einfaches Anführungszeichen in eine Zeichenfolge einzufügen, ist es am einfachsten, die gesamte Zeichenfolge in doppelte Anführungszeichen zu setzen:

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

Es ist ein guter allgemeiner Rat, Ihren Text in doppelte Anführungszeichen zu setzen. In Skripten werden die Parameter, die Sie an echo , sauber begrenzt. Dies erleichtert das Lesen und Debuggen von Skripten erheblich.

Was ist, wenn Sie ein doppeltes Anführungszeichen in Ihre Textzeichenfolge einfügen möchten? Setzen Sie einfach einen Backslash \ vor das doppelte Anführungszeichen (ohne Leerzeichen).

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

Dies umschließt das Wort „Geek“ in doppelte Anführungszeichen für uns. Wir werden in Kürze weitere dieser Backslash-Escaped-Zeichen sehen.

Variablen mit Echo verwenden

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

my_name="Dave"

Eine Variable namens my_name wurde erstellt. Es wurde der Wert des Textes „Dave“ zugewiesen.“ Wir können den Variablennamen in den Zeichenfolgen verwenden, die wir an echo , und der Wert der Variablen wird in das Terminalfenster geschrieben. Sie müssen ein Dollarzeichen $ vor den Variablennamen setzen, damit echo weiß, dass es sich um eine Variable handelt.

Es gibt eine Einschränkung. Wenn Sie Ihre Zeichenfolge in einfache Anführungszeichen gesetzt haben, wird echo alles wörtlich behandeln. Verwenden Sie doppelte Anführungszeichen, um den Variablenwert und nicht den Namen der Variablen anzuzeigen.

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

Etwas treffend, das lohnt sich zu wiederholen:

  • 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 Variablenerweiterung genannt — und der Wert in das Terminalfenster geschrieben wird.

VERWANDT: So arbeiten Sie mit Variablen in Bash

Verwenden von Befehlen mit echo

Wir können einen Befehl mit echo und seine Ausgabe in die Zeichenfolge integrieren, die in das Terminalfenster geschrieben wird. Wir müssen das Dollarzeichen $ so verwenden, als wäre der Befehl eine Variable, und den gesamten Befehl in Klammern setzen.

Wir verwenden den Befehl date. Ein Tipp ist, den Befehl selbst zu verwenden, bevor Sie ihn mit echo . Wenn also etwas mit der Syntax Ihres Befehls nicht stimmt, identifizieren und korrigieren Sie es, bevor Sie es in den Befehl echo aufnehmen. Wenn dann der Befehl echo nicht das tut, was Sie erwarten, wissen Sie, dass das Problem mit der Syntax echo da Sie die Syntax des Befehls bereits bewiesen haben.

Versuchen Sie dies also im Terminalfenster:

date +%D

Und, zufrieden, dass wir bekommen, was wir von dem Datum Befehl erwarten, wir werden es in eine integrieren echo Befehl:

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

Beachten Sie, dass sich der Befehl innerhalb der Klammern befindet und das Dollarzeichen $ unmittelbar vor der ersten Klammer steht.

Text mit echo formatieren

Mit der Option -e (Backslash Escapes aktivieren) können wir einige Backslash-Escapes verwenden, um das Layout des Textes zu ändern. Dies sind die Backslash-Escapezeichen, die wir verwenden können:

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

echo -e "This is a long line of text\nsplit across three lines\nwith\ttabs\ton\tthe\tthird\tline"

Der Text wird in eine neue Zeile aufgeteilt, in der wir die \n Zeichen verwendet haben, und ein Tabulator wird eingefügt, in dem wir die \t Zeichen verwendet haben.

echo -e "Here\vare\vvertical\vtabs"

Wie die \n neue Zeilenzeichen, ein vertikaler Tab \v verschiebt den Text in die Zeile darunter. Im Gegensatz zu den \n neuen Zeilenzeichen beginnt die vertikale Registerkarte \v die neue Zeile jedoch nicht bei Spalte Null. Es verwendet die aktuelle Spalte.

Die \b Rücktaste bewegt den Cursor ein Zeichen zurück. Wenn mehr Text in das Terminal geschrieben werden soll, überschreibt dieser Text das vorherige Zeichen.

echo -e "123\b4"

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

Das \r Wagenrücklaufzeichen bewirkt, dass echo an den Anfang der aktuellen Zeile zurückkehrt und weiteren Text aus Spalte Null schreibt.

echo -e "123\r456"

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

Das \a Warnzeichen erzeugt einen hörbaren „Piepton.“ Es verwendet den Standard-Alarmton für Ihr aktuelles Thema.

echo -e "Make a bleep\a"

Die -n (kein Zeilenumbruch) Option ist keine Backslash-Escaped-Sequenz, aber sie beeinflusst die Schönheit des Textlayouts, also werden wir sie hier diskutieren. Es verhindert, dass echo am Ende des Textes eine neue Zeile hinzufügt. Die Eingabeaufforderung wird direkt nach dem Text angezeigt, der in das Terminalfenster geschrieben wird.

echo -n "no final newline"

echo mit Dateien und Verzeichnissen verwenden

Sie können echo als eine Art Version des armen Mannes von lsverwenden. Ihre Optionen sind gering, wenn Sie echo wie folgt verwenden. Wenn Sie irgendeine Art von Wiedergabetreue oder Feinsteuerung benötigen, sind Sie besser dran, ls und seine Legion von Optionen zu verwenden.

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

echo *

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

echo D*

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

echo *.desktop

Ja. Dies entspricht nicht den Stärken von echo . Verwenden Sie ls.

Schreiben in Dateien mit echo

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

Wenn wir den > Umleitungsoperator verwenden, wird die Datei erstellt, wenn sie nicht existiert. Wenn die Datei vorhanden ist, wird die Ausgabe von echo am Anfang der Datei hinzugefügt, wobei der vorherige Inhalt überschrieben wird.

Wenn wir den >> Umleitungsoperator verwenden, 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 und Text eingefügt. Der zweite Befehl fügt am Ende der Datei eine Textzeile hinzu. Der Befehl cat zeigt den Inhalt der Datei im Terminalfenster an.

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

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

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

Unser Logfile wird für uns erstellt und cat zeigt uns, dass Datums- und 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 ‚Shenanigans haben immerhin etwas Gutes getan.



Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.