Echo-Befehl in der Bash-Shell: Entdecken Sie die vielen Verwendungen

Als Administrator führen Sie möglicherweise regelmäßig den Echo-Befehl in Bash aus, wenn Sie ein Linux-System verwalten. Aber drucken Sie nur Texte mit dem Echo-Befehl aus?

In diesem Tutorial werfen Sie einen genaueren Blick auf den Echo-Befehl und lernen einige seiner nützlichsten praktischen Beispiele kennen.

Bereit? Bleiben Sie dran und ändern Sie Ihre Vorstellung vom Echo-Befehl!

Voraussetzung

Dieses Tutorial umfasst praktische Demonstrationen. Um mitzumachen, benötigen Sie lediglich einen Ubuntu-Rechner. Dieses Tutorial verwendet Ubuntu 20.04, aber auch andere Linux-Distributionen werden funktionieren.

Strings mit dem Echo-Befehl in der Bash-Shell ausgeben

Wenn Sie an den Echo-Befehl denken, kommt Ihnen wahrscheinlich als Erstes das Ausgeben von Zeichenkettenwerten in der Konsole in den Sinn. Ja, der Echo-Befehl gibt Zeichenketten direkt von einem Befehl oder Skript zurück.

Aber später in diesem Tutorial werden Sie den Echo-Befehl aus einer anderen Perspektive betrachten. Im Moment sehen Sie, wie dieser Befehl Zeichenketten in der Konsole ausgibt.

Die Syntax für den Echo-Befehl lautet wie folgt:

  • string – der zu druckende Text.
  • optionen – die optionalen Argumente, die Sie angeben können, um die Ausgabe zu modifizieren.
echo string options

Führen Sie den folgenden Echo-Befehl ohne zusätzliche Optionen aus, um einen einfachen Text in der Konsole auszugeben. Dieser Befehl übergibt die Zeichenkette als Argument an den Echo-Befehl.

echo "Echo command bash"
Printing a string to the console

Unterdrücken von abschließenden Zeilenumbrüchen in Zeichenketten

Der Echo-Befehl fügt standardmäßig am Ende jeder Zeichenkette ein Zeilenendezeichen hinzu. Daher wird beim Drucken mehrerer Zeichenketten, die möglicherweise miteinander verbunden sind, jede Zeichenkette auf einer neuen Zeile gedruckt.

Die Option -n unterdrückt abschließende Zeilenenden und fordert den Echo-Befehl auf, mehrere Zeichenketten in einer einzigen Zeile zu drucken. Diese Option kann beispielsweise beim Drucken von Fortschrittsbalken in die Konsole hilfreich sein.

Führen Sie den folgenden Befehl aus, um Fortschritt: und 50% zu drucken.

echo -n "Progress: " && echo "50%"

Unten sehen Sie, wie Zeilenumbrüche die beiden Zeichenketten trennen.

echo command bash : newlines separate the two strings

Jetzt führen Sie den folgenden Befehl aus und fügen die -n Option an, um die Zeichenketten Fortschritt: und 50% zu drucken.

echo -n "Progress: " && echo "50%"

Wie unten zu sehen ist, befinden sich beide Zeichenketten nun in einer einzigen Zeile, da Sie die -n Option verwendet haben, um die Zeilenumbrüche zu unterdrücken.

Suppressing trailing newlines

Drucken von Variablenwerten

Beim Schreiben eines Skripts speichern Sie normalerweise vorübergehend einen Wert in einer Variablen, den Sie mit dem Echo-Befehl ausgeben können. Diese Funktion kann nützlich sein, wenn Sie den Wert einer Variablen überprüfen, um ein Shell-Skript zu debuggen.

Führen Sie die unten stehenden Befehle aus, um den Wert der Variable „number“ auf 10 zu setzen und den Wert auf die Konsole zu drucken (echo).

# Speichert den Wert 10 in der Variablen "number"
number=10
# Gibt den aktuellen in der Variable "number" gespeicherten Wert aus
echo The number is $number
Printing the Value of a Variable

Interpretation von Escape-Sequenzen

Eine Escape-Sequenz ist eine Zeichenfolge von Zeichen, die ein Sonderzeichen repräsentiert, und Sie können die Option -e verwenden, um Escape-Sequenzen zu interpretieren.

Beispielsweise stellt die \t-Escape-Sequenz ein Tabulatorzeichen dar. Wenn Sie die -e-Option verwenden und \t in die Konsole drucken, wird \t als Tabulatorzeichen interpretiert, anstatt wörtlich gedruckt zu werden.

Einige der häufigsten Escape-Sequenzen sind wie folgt:

Escape Sequence Function
\b backspace
\t tab
\n new line
\\ backslash
\$ dollar sign

Führen Sie den folgenden Befehl aus, um Hallo\tWelt in die Konsole zu drucken.

echo "Hello\tWorld"

Sie können unten sehen, dass der Echo-Befehl die Zeichenfolge Hallo\tWelt wie angegeben gedruckt hat.

Printing a string without an escape sequence

Führen Sie nun den folgenden Befehl aus, um Hallo\tWelt zu drucken, wobei die -e-Option verwendet wird, um \t als Tabulatorzeichen dazwischen zu interpretieren.

echo -e "Hello\tWorld"

Beachten Sie den großen Abstand zwischen dem Wort Hallo und Welt unten.

Interpreting an escape sequence

Einfügen von Zeichenfolgen in eine neue Zeile

Das Drucken einer langen einzelnen Zeile von Zeichenfolgen macht es dem Benutzer schwer, sie vollständig zu lesen. Glücklicherweise ermöglicht die \n-Option das Hinzufügen eines neuen Zeichenfolgenzeichens in der Mitte einer Zeichenfolge. Diese Option wird häufig verwendet, wenn mehrere Zeilen Text in die Konsole gedruckt werden, was dem tatsächlichen Text Klarheit verleiht.

Führen Sie den folgenden Befehl aus, um die Zeichenfolge Echo-Befehl bash\nEine andere Zeile zu drucken, wobei die \n-Option die Zeichenfolge in zwei Zeilen aufteilt.

echo -e "Echo command bash\nAnother line"

Unten sehen Sie, dass die \n-Option die Zeichenfolge Eine andere Zeile in eine neue Zeile setzt.

Inserting a string into a new line

Einfügen von vertikalen Tabs zwischen Zeichenfolgen

Sie haben gesehen, wie die \t-Escape-Sequenz ein horizontaler Tabulator zwischen Zeichenfolgen setzt. Aber wie wäre es mit einem vertikalen Tabulator? Die \v-Option ermöglicht es Ihnen, Zeichenfolgen in vertikalen Tabs zu trennen, was perfekt ist, um Textbanners zu erstellen.

Diese Option wird häufig verwendet, wenn mehrere Spalten Text in die Konsole gedruckt werden, wobei jede Spalte in einer neuen Zeile mit einem neuen Tabulator am Anfang steht.

Führen Sie den folgenden Befehl aus, um den Text Echo-Befehl bash demo mit vertikalen Tabs (\v) zwischen jedem Wort zu drucken.

echo -e "Echo \vcommand \vbash \vdemo
Inserting vertical tabs in between strings

Drucken von Dateinamen basierend auf Erweiterung

Wenn Sie nach einer Möglichkeit suchen, Dateien mit einem bestimmten Dateityp zu finden, funktioniert dieses Feature des Echo-Befehls genauso. Der Echo-Befehl unterstützt das Auflisten von Dateien in einem Verzeichnis mit einer bestimmten Erweiterung mit dem Platzhalterzeichen (*).

1. Führen Sie den folgenden Befehl aus, um alle Dateien mit der Erweiterung .txt im aktuellen Verzeichnis zu drucken.

echo *.txt
Printing all .txt files in the current directory

2. Führen Sie anschließend den folgenden Befehl aus, um alle Dateien mit der Erweiterung .deb im aktuellen Verzeichnis zu drucken.

echo *.deb
Printing all .deb files in the current directory

3. Führen Sie zuletzt den folgenden Befehl aus, um die Dateien mit der Erweiterung .txt im Verzeichnis ~/Downloads zu drucken. Sie können ~/Downloads/ durch den tatsächlichen Verzeichnispfad Ihrer Datei ersetzen.

echo ~/Downloads/*.txt

Sie können unten sehen, dass der Echo-Befehl das Angeben eines Verzeichnispfads unterstützt, in dem sich Ihre Dateien befinden.

Finding .txt files in the specific directory

Schreiben von Ausgabe in Datei

Wenn Ihr Befehl eine massenhafte Ausgabe liefert, können Sie kaum alles auf der Konsole lesen. Das Schreiben der Ausgabe stattdessen in eine Datei ist eine großartige Idee. Aber wie? Neben dem Drucken von Texten auf der Konsole unterstützt der echo-Befehl auch das direkte Schreiben von Ausgaben in eine Datei.

Führen Sie den unten stehenden Befehl aus, der keine Ausgabe liefert, da die Ausgabe (>) in eine Datei namens echo-bash.txt geschrieben wird.

Beachten Sie, dass wenn die Datei echo-bash.txt bereits existiert, sie mit dem neuen Inhalt überschrieben wird.

echo "echo command bash" > echo-bash.txt

Führen Sie nun den folgenden cat-Befehl aus, um den Inhalt der Datei echo-bash.txt anzuzeigen.

cat echo-bash.txt

Wie Sie unten sehen können, wird die Ausgabe des echo-Befehls in die Datei echo-bash.txt geschrieben.

Verifying the output written to file

Anhängen von Ausgaben an vorhandene Dateien

Wie bereits erwähnt, überschreibt der >-Operator eine vorhandene Datei mit neuem Inhalt. Aber was ist, wenn Sie die Ausgabe an eine vorhandene Datei anhängen möchten, anstatt sie zu überschreiben?

Verwenden Sie anstelle eines einzelnen >-Operators zwei >>. Diese Funktion hilft dabei, den vorhandenen Inhalt beizubehalten und neue Einträge an das Ende der Datei anzuhängen.

Führen Sie den unten stehenden Befehl aus, um neue Texte (Anhängen von Text) an die vorhandene echo-bash.txt-Datei anzuhängen.

echo "Appending text" >> echo-bash.txt

Führen Sie nun den folgenden cat-Befehl aus, um den Inhalt der Datei echo-bash.txt anzuzeigen.

cat echo-bash.txt

Wie Sie unten sehen können, wird die Ausgabe des echo-Befehls an die Datei angehängt, ohne etwas zu überschreiben.

Appending output to an existing file

Zusammenfassung

Der Echo-Befehl in der Bash-Shell ist ein einfaches, aber leistungsstarkes Werkzeug, das auf viele Arten verwendet werden kann. Und in diesem Tutorial haben Sie gelernt, wie Sie das Potenzial des Echo-Befehls mit einigen seiner beliebtesten Optionen maximieren können.

Das Drucken von Texten in die Konsole ist nicht mehr nur das „Drucken von Texten“. Sie haben gesehen, wie man Ausgaben in eine Datei schreibt, Ausgaben anhängt und wie jeder gedruckte Text aussieht, ändert.

Warum nicht einige Möglichkeiten auswählen, wie Sie den Echo-Befehl verwenden können, und sie in Ihren Skripten aufschreiben? Sehen Sie, welche kreativen Möglichkeiten Ihnen einfallen!

Source:
https://adamtheautomator.com/echo-command-in-bash/