Was ist der Unterschied zwischen Printf und Echo in Bash?

Was ist der Unterschied zwischen Printf und Echo in Bash?
Vielleicht möchten wir das Ergebnis einer Ubuntu -Operation auf eine bestimmte Weise organisieren. Vielleicht sollten wir aufgeblähte Ergebnisse vermeiden und Informationen in einem präzisen Stil präsentieren. Die Befehle echo und printf sind ebenfalls konstruiert. PRINTF bietet die Erstellung einer Formatierungszeichenfolge und bietet einen Status ohne Null-Kündigung, wenn sie fehlschlägt. Während das Echo normalerweise mit einem 0 -Status verlässt und typischerweise Eingänge ausgibt. Mit dem "printf" gibt Ihnen mehr Optionen für das Ausgabeformat als das "Echo". In dieser kurzen Lektion werden wir uns untersuchen.04 Linux -System.

Beispiel 01:

Lassen Sie uns unser erstes einfaches und einfaches Beispiel geben, um die Arbeit von Printf- und Echo -Aussagen zu betonen und zu sehen. Sie müssen die Konsolen -Shell -Anwendung dazu öffnen. Verwenden Sie dafür das "Strg+Alt+T" auf dem Desktop -Bildschirm Ihres Ubuntu 20.04 Linux -Betriebssystem. Die Konsolenanwendung wird in wenigen Augenblicken geöffnet, und dafür müssen Sie nicht viel warten. Nachdem das Terminal geöffnet wurde, werden wir sowohl "printf" als auch "echo" -Anweisungen getrennt ausführen, um zu sehen, wie sie ordnungsgemäß funktionieren. Wir haben also zuerst "Printf" auf der Shell ausprobiert, um die Anzahl der Zeichen in einer Zeichenfolge "Linux" auf unserer Shell auszudrucken.

Der Befehl wurde zusammen mit dem Keyword "WC" mit dem Flag „-m“ verwendet. Der Befehl wurde im Bild unten aufgeführt. Nachdem wir diesen Befehl ausgeführt haben, indem wir die Taste "Eingabetaste" drücken, bekamen wir 5 als Ergebnis. Dies bedeutet, dass das „printf“ nur 5 Buchstaben enthält. Da das Printf eine Standardanweisung ist, wird die Argumente aus diesem Grund in einer Standardformatform angezeigt, während sie in der Kontrolle standhalten.

$ printf 'Linux' | wc -m

Lassen Sie uns jetzt einen Blick auf die Erklärung „Echo“ machen. Die Gesamtsyntax für den Befehl wird also gleich sein, aber die Anweisung „Echo“ wird hier anstelle von "printf" verwendet. Die im Befehl bereitgestellte Zeichenfolge ist ebenfalls gleich. Wenn wir den Befehl auf der Konsole ausführen, wird die 6 -Nummer als Ergebnis angezeigt. Warum passiert das, wenn eine Zeichenfolge nur 5 Zeichen enthält? Dies liegt daran. Wenn wir vor oder nach der Zeichenfolge Platz hinzufügen, wird es auch als Zeichen betrachtet.

$ echo 'Linux' | wc -m

Beispiel 02: Verwendung von printf

Lassen Sie uns zuerst die Arbeit der Aussage „Printf“ in unserem neuen Beispiel sehen. Erstellen Sie eine neue Bash -Datei “Test.sh ”mit der Verwendung eines Nano -Touch -Befehls, gefolgt vom Befehl„ Nano “in der Shell. Der Befehl nano wird verwendet, um die Datei in einem "Nano" -Dedized zu öffnen. Nachdem die Datei geöffnet wurde, haben wir die Bash -Erweiterung zuerst in der ersten Zeile einer Datei hinzugefügt. Die Variable „Str“ wurde mit einem langen Zeichenfolgenwert initialisiert. Wir haben eine eingebaute Variable „IFs“ deklariert, um Platz als Trennwert zu nutzen.

Dann haben wir den Befehl „Read“ in der nächsten Zeile verwendet, um die Werte einer String -Variablen als Array zu lesen und in der Variablen „arr“ zu speichern. Die Flagge „-ra“ wurde hier speziell für diesen Zweck verwendet. Danach wird hier die Echo -Anweisung verwendet, um uns über die Größe einer Array -Variablen „arr“ zu informieren,. Die Schleife für die „für“ wurde initialisiert, um jedes Wort aus einer Zeichenfolgenvariablen zu iterieren und sie mit der Anweisung "printf" auf der Shell anzuzeigen. Wie wir wissen, dass der Printf die nächste Zeile nicht als nächstes Zeichen automatisch einnimmt. Die Schleife endet hier und der Code wird mit Hilfe eines Taste „Strg+S“ gespeichert.

Führen Sie die Datei mit dem Befehl „Bash“ aus, um die Ergebnisse der Printf -Anweisung zu sehen, damit sie funktioniert. Die Ausgabe zeigt die Größe eines Arrays an, ich.e., 9. Danach wurde jedes Wort einer Zeichenfolge mit der Schleife „für“ iteriert und auf dem Terminal an jeder nächsten Zeile getrennt angezeigt. Dies wurde mit der "\ n" in der Klausel "printf" durchgeführt. Ansonsten ist es möglicherweise nicht passiert.

$ Bash -Test.Sch

Beispiel 03: Verwenden von Echo

In diesem neuen Beispiel werden wir die Arbeit der Anweisung „Echo“ im Bash -Skript veranschaulichen. Also haben wir den gleichen „Test“ eröffnet.SH ”Finden Sie mit Hilfe eines„ Nano “-Befehls in der Shell -Konsole. Die Datei wird im Nano -Editor geöffnet. Der gesamte Code blieb unverändert, ich.e., Bash -Support, String „Str“, IFS -Variable, Lesen von Anweisungen und „für“ Loops. Die einzige Änderung, die Sie vornehmen müssen.

Sie können sehen, dass wir auch „\ n“ in die Anweisung „Echo“ hinzugefügt haben, um in die neue Zeile zu gelangen. Da wir alle wissen, dass die Erklärung „Echo“ die Neue Linie immer als zusätzlichen Charakter betrachtet; Daher wird die Ausgabe als solche nicht formatiert.

Lassen Sie uns den Code ausführen, um die Ergebnisse zu sehen. Anstatt eine Lücke von 1 neuer Zeile zu schaffen, betrachtet die Echo -Erklärung das „\ n“ als zusätzliches Zeichen. Daher sieht die Ausgabe unten aus wie etwas.

$ Bash -Test.Sch

Lassen Sie uns den Code aktualisieren, um die erforderlichen Ergebnisse zu erhalten. Nach dem Öffnen der Datei haben wir also das Zeichen „\ n“ aus der Echo -Anweisung -Zeichenfolge entfernt. Speichern Sie den Code und beendet die Datei.

Nachdem wir den aktualisierten Code dieses Mal ausgeführt haben, haben wir erneut die Größe eines String -Arrays als "9" erhalten. Danach wurden alle Wörter eines Arrays getrennt angezeigt, jeweils in der nächsten Zeile.

$ Bash -Test.Sch

Abschluss:

Diese Anleitung enthält mehr als ein Beispiel, um die Funktionalität und den Unterschied der Aussagen „Printf“ und „Echo“ zu veranschaulichen. Bevorzugen.