Creative Saplings

Verwendung des Echo-Befehls unter Linux

Oktober 19, 2020
No Comments
  • Dave McKay

    @TheGurkha

  • 29. Oktober 2019, 8:00 Uhr EDT
Fatmawati Achmad Zaenuri /

Die echo eignet sich 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. Befolgen Sie diese einfache Anleitung, um herauszufinden, wie.

Echo wiederholt, was Sie ihm sagen sollen

Zeus verließ gern den Olymp, um sich mit wunderschönen Nymphen zusammenzutun. Auf einer Reise sagte er einer Bergnymphe namens Echo, sie solle seiner Frau Hera auf die Nerven gehen, wenn sie ihm folge. 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 echo das Los im Leben. Es wiederholt, was gesagt wurde, um zu wiederholen. Das ist eine einfache, aber wichtige Funktion. Ohne echo könnten wir beispielsweise keine sichtbare Ausgabe von Shell-Skripten erhalten.

Advertisement

Ohne beladen mit Bei einer Vielzahl von Schnickschnack besteht eine gute Chance, dass echo einige Funktionen hat, die Sie nicht kannten oder die Sie vergessen hatten.

Echo? echo!

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

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

type echo
whereis echo

Die type gibt an, ob der Befehl, den wir als Argument an ihn übergeben, eine integrierte Shell, eine ausführbare Binärdatei, ein Alias oder eine Funktion ist. Es wird uns berichtet, dass echo eine eingebaute Shell ist.

Werbung

Sobald eine Antwort gefunden wurde, type sucht nicht mehr 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 übergeben wir ihm als Befehlszeilenparameter. Shell-Builds werden nicht gesucht, da sie keine separate ausführbare Binärdatei haben. Sie sind ein integraler Bestandteil der ausführbaren Bash-Datei.

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

Um diese Version von echo zu verwenden, müssen Sie sie explizit durch Bereitstellen aufrufen Der Pfad zur ausführbaren Datei in der Befehlszeile:

/bin/echo --version
Anzeige

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

echo --version

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

Schreiben von Text in das Terminal

Zum Schreiben einer einfachen Textzeichenfolge in das Terminalfenster Geben Sie echo und die Zeichenfolge ein, die angezeigt werden soll:

echo My name is Dave.

Der Text wird für uns wiederholt. Beim Experimentieren werden Sie jedoch bald feststellen, dass die Dinge etwas komplizierter werden können. Sehen Sie sich dieses Beispiel an:

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

Das Terminalfenster zeigt ein > -Zeichen an und sitzt da 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. Dieses einfache Anführungszeichen wurde als Beginn eines zitierten Abschnitts interpretiert echo wartete auf weitere Eingaben. Da erwartet wurde, dass weitere Eingaben das fehlende einfache Anführungszeichen enthalten, auf das gewartet wurde.

Um ein einfaches Anführungszeichen in eine Zeichenfolge aufzunehmen, besteht die einfachste Lösung darin, die gesamte Zeichenfolge in doppelte Anführungszeichen zu setzen:

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

Umschließen Ihres Textes In doppelten Anführungszeichen ist dies ein guter allgemeiner Rat. In Skripten werden die Parameter, die Sie an echo übergeben, sauber abgegrenzt. Dies erleichtert das Lesen und Debuggen von Skripten erheblich.

Werbung

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

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

Damit wird das Wort „Geek“ für uns in doppelte Anführungszeichen gesetzt. In Kürze werden weitere Zeichen mit Backslash-Escapezeichen angezeigt.

Verwenden von Variablen mit Echo

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

my_name="Dave"

Eine Variable mit dem Namen my_name wurde erstellt hat den Wert des Textes „Dave“ zugewiesen. Wir können den Variablennamen in den Zeichenfolgen verwenden, die wir an echo übergeben, 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.

Werbung

Es gibt eine Einschränkung. Wenn Sie Ihre Zeichenfolge in einfache Anführungszeichen gesetzt haben, behandelt echo alles wörtlich. 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 lohnt es 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 zu Die zu interpretierende Variable – auch als Variablenerweiterung bezeichnet – und der Wert werden in das Terminalfenster geschrieben.

RELATED: Arbeiten mit Variablen in Bash

Verwenden von Befehlen mit echo

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

Wir werden den Befehl date verwenden . Ein Tipp ist, den Befehl alleine zu verwenden, bevor Sie ihn mit echo verwenden. Auf diese Weise können Sie die Syntax Ihres Befehls identifizieren und korrigieren, bevor Sie sie in den Befehl echo aufnehmen. Wenn der Befehl echo dann nicht das tut, was Sie erwarten, wissen Sie, dass das Problem mit der Syntax echo liegen muss, weil Sie Wir haben die Syntax des Befehls bereits bewiesen.

Versuchen Sie dies also im Terminalfenster:

date +%D

Und zufrieden, dass wir es sind Wenn wir das bekommen, was wir vom Date-Befehl erwarten, integrieren wir ihn in einen echo -Befehl:

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

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

Formatieren von Text mit Echo

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

Lassen Sie uns einige davon 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 Zeichen \n verwendet haben, und eine Registerkarte wird eingefügt, in der wir die Zeichen \t verwendet haben.

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

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

Die Rücktaste \b bewegt den Cursor um 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 das „überschrieben“. 4 ”.

Das Wagenrücklaufzeichen \r bewirkt, dass echo zum Anfang der aktuellen Zeile und zu zurückkehrt Schreiben Sie weiteren Text aus Spalte Null.

echo -e "123\r456"

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

Die \a Alarmzeichen erzeugt einen hörbaren „Piepton“. Es wird der Standard-Alarmton für Ihr aktuelles Thema verwendet.

echo -e "Make a bleep\a"
Werbung

Die -n (kein Zeilenumbruch) ist keine Backslash-Escape-Sequenz, wirkt sich jedoch auf die Kosmetik des Textlayouts aus. Wir werden sie daher hier diskutieren. Sie verhindert, dass echo hinzugefügt wird Eine neue Zeile am Ende des Textes. Die Eingabeaufforderung wird direkt nach dem Text angezeigt, der in das Terminalfenster geschrieben wird.

echo -n "no final newline"

Verwenden von Echo mit Dateien und Verzeichnissen

Sie können echo als Sortierung verwenden der Version von ls des armen Mannes. Wenn Sie echo wie folgt verwenden, gibt es nur wenige Möglichkeiten. Wenn Sie eine Wiedergabetreue oder Feinsteuerung benötigen, sollten Sie ls und seine zahlreichen Optionen verwenden.

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

echo *

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

echo D*
Ankündigung

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

echo *.desktop

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

Schreiben in Dateien mit Echo

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

Wenn Sie den Umleitungsoperator > verwenden, wird die Datei erstellt, wenn sie nicht vorhanden ist. Wenn die Datei vorhanden ist, wird die Ausgabe von echo am Anfang der Datei hinzugefügt, wobei alle vorherigen Inhalte überschrieben werden.

Wenn wir die >>, die Datei wird erstellt, wenn sie nicht vorhanden ist. 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
Ankündigung

Mit dem ersten Befehl wird eine neue Datei erstellt und Text eingefügt hinein. 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 einfü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. Dies können wir 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
Werbung

Unsere Protokolldatei wurde für uns erstellt und cat zeigt uns, dass sowohl der Datenstempel als auch der Zeitstempel hinzugefügt wurden.

RELATED : Was sind stdin, stdout und stderr unter Linux?

Das ist das Repertoire von echo

Ein einfacher Befehl, aber unverzichtbar. Wenn es nicht existieren würde, müssten wir es erfinden.

Zeus ‚Spielereien haben schließlich etwas Gutes getan.

Dave McKay
Dave McKay benutzte zum ersten Mal Computer, als Lochpapier in Mode war, und seitdem programmiert er. Nach über 30 Jahren in der IT-Branche ist er jetzt ein Vollzeit-Technologiejournalist. Während seiner Karriere war er als freiberuflicher Programmierer, Manager eines internationalen Softwareentwicklungsteams, Projektmanager für IT-Services und zuletzt als Datenschutzbeauftragter tätig. Dave ist ein Linux-Evangelist und Open-Source-Anwalt. Lesen Sie Full Bio „

Articles
Previous Post

Top 10 kupferreiche Lebensmittel, die Sie in Ihre Ernährung aufnehmen sollten

Next Post

Wählen Sie Ihre Aromen aus

Schreibe einen Kommentar Antworten abbrechen

Neueste Beiträge

  • Beste Fotografieschulen der Welt, 2020
  • Souveräne Bürger bringen ihre regierungsfeindliche Philosophie auf die Straße
  • Leitfaden für Stuckreparaturkosten
  • Muckrakers (Deutsch)
  • Präzisionsonkologie

Archive

  • Februar 2021
  • Januar 2021
  • Dezember 2020
  • November 2020
  • Oktober 2020
  • September 2020
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어
Proudly powered by WordPress | Theme: Fmi by Forrss.