GNU/Linux >> LINUX-Kenntnisse >  >> Linux

3 Tricks, um mehrere Befehle in derselben Zeile auszugeben

Drei Tricks, um zwei Befehle in einem auszugeben einreihig. Normalerweise werden zwei Befehlsausgaben im Linux-Terminal immer durch einen Wagenrücklauf getrennt.

Eine der größten Hürden bei der Skripterstellung besteht darin, Ihre Ausgaben entsprechend den Anforderungen gut formatieren zu lassen. Unter Linux/Unix gibt jeder Befehl stdout seine Ausgabe immer in einer neuen Zeile aus. Dies ist in vielen Situationen eine Hürde, in denen der Programmierer zwei Ausgaben, zwei Begriffe, zwei Variablen in einer einzelnen Zeile, z. B. im CSV-Format, haben möchte. In diesem Beitrag werden wir sehen, wie die Ausgabe von zwei oder mehr Befehlen in einer einzigen Zeile dargestellt wird.

Lesen Sie auch:Beiträge zum Thema Scripting

Wenn wir mehr als einen Befehl ausführen, werden normalerweise Ausgaben in verschiedenen Zeilen angezeigt:

# date ; hostname
Sat Dec 24 01:35:50 EDT 2016
testsrv2

# echo text1; echo text2; echo text3
text1
text2
text3

Im obigen Beispiel haben Befehle Ausgaben pro Zeile. Wir werden alle Ausgaben in einer Reihe mit den folgenden Tricks erreichen.

Trick 1:

Mit der Übersetzungsfunktion. Wie ich bereits sagte, wird jede Befehlsausgabe von einem Wagenrücklauf begleitet. Wir werden Wagenrücklauf mit Tabulatorzeichen übersetzen, wodurch zwei oder mehr Befehle in einer einzigen Zeile ausgegeben werden.

# (date; hostname) |tr '\n' '\t'
Sat Dec 24 01:36:22 EDT 2016    testsrv2

# (echo text1; echo text2; echo text3) |tr '\n' '\t'
text1   text2   text3

Durch das Umgehen von Ausgängen zur Übersetzungsfunktion erreichten wir eine einzeilige Ausgabe. Hier haben wir tr angewiesen Funktion zum Übersetzen aller Wagenrückläufe (\n ) zur Registerkarte (\t ).

Wenn Sie im CSV-Format (kommagetrennter Wert) ausgeben möchten, ersetzen Sie den Tabulator durch ein Komma und Sie erhalten es.

# (date; hostname) |tr '\n' ','
Sat Dec 24 01:43:09 EDT 2016,testsrv2,

# (echo text1; echo text2; echo text3) |tr '\n' ','
text1,text2,text3,

Sie können ein nachgestelltes Komma beobachten, das anzeigt, dass jede Befehlsausgabe mit \n endet und daher durch , ersetzt wird

Trick 2:

Indem Sie jede Befehlsausgabe als Variable definieren. Hier speichern wir die Ausgabe jedes Befehls in einer Variablen und geben diese Variablen dann in einer einzigen Zeile aus.

# mydate=`date`

# myname=`hostname`

# echo $myname $mydate
testsrv2 Sat Dec 24 01:46:04 EDT 2016

Hier haben wir die Ausgabe des Datums- und Hostnamenbefehls in mydate gespeichert und myname Variablen. Im letzten Befehl haben wir beide Variablen mit Leerzeichen dazwischen ausgegeben. Beachten Sie, dass die Befehlsausgabe in einer Variablen gespeichert werden kann, indem der Befehl mit Backticks ausgeführt wird (Inline-Ausführung)!

Trick 3:

Durch Echos von Inline-Ausführungsausgaben. Inline-Ausführung, d. h. die Verwendung von Backticks, um Befehle innerhalb eines anderen Befehls auszuführen. Wir werden diesen Trick verwenden, um Ausgaben in einer einzelnen Zeile zu echoen.

# echo "`date` `hostname`"
Sat Dec 24 01:50:36 EDT 2016 testsrv2

Im obigen Beispiel haben wir zunächst Befehle ausgeführt und Ausgaben erhalten. Aber diese Ausgaben werden in den Echo-Befehl eingespeist. Daher gibt der echo-Befehl stdout sie in einer einzigen Zeile aus.

# echo "`echo text1` `echo text2` `echo text3`"
text1 text2 text3

Beachten Sie, dass wir jeden Befehl in separaten Backtick-Anführungszeichen ausgeführt haben.


Linux
  1. Wie weist man die Ausgabe eines Befehls einer Shell-Variablen zu?

  2. CentOS / RHEL :So zeigen Sie die Befehle an, die in der Befehlsausgabe des Yum-Verlaufs ausgeführt werden

  3. Wie hängt man die Ausgabe an eine Datei an?

  4. Holen Sie sich die letzten 4 Zeichen der Ausgabe von Standardausgabe

  5. Führen Sie parallel mehrere Befehle gleichzeitig im selben Terminal aus

Formatierungstricks für den Linux-Datumsbefehl

So ändern Sie die Ausgabefarbe von „Echo“ in Linux

5 der langweiligsten Befehle in Linux

Beispiele für Linux-Echo-Befehle

CentOS / RHEL :So erhalten Sie das Datum und die Uhrzeit des ausgeführten Befehls in der Verlaufsbefehlsausgabe

Zeilenumbruch an die Befehlsausgabe anhängen