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

So verwenden Sie den Echo-Befehl ohne Zeilenumbruch

Der Echo-Befehl ist eine praktische Möglichkeit, irgendetwas in Shell-Skripten auszugeben.

Standardmäßig fügt es immer ein neues Zeilenzeichen hinzu. Wenn Sie also mehrere echo-Befehle ausführen, wird jede Ausgabe in einer neuen Zeile angezeigt.

Dies kann jedoch in Situationen unpraktisch sein, in denen Sie mit dem Echo-Befehl, aber ohne Zeilenumbruch drucken müssen.

Stellen Sie sich vor, Sie versuchen, die Fibonacci-Reihe zu drucken:1, 1, 2, 3, 5, 8, 13, 21, 34, 55

Sie können das -n verwenden Flag des echo-Befehls zum Drucken ohne Zeilenumbruch:

echo -n "Hello World"

Sie werden feststellen, dass die Eingabeaufforderung in derselben Zeile unmittelbar nach Hello World now angezeigt wird.

Lassen Sie uns einen genaueren Blick darauf werfen.

Echo-Befehl ohne Zeilenumbruch drucken

Nehmen wir eine einfache for-Schleife, die den Inhalt eines Arrays in einem Bash-Skript ausgibt, und überprüfen Sie die Ausgabe.

$ bash_array=(1 2 3 4)

$ for i in ${bash_array[@]}; do
    echo $i
done
1
2
3
4

Wie Sie sehen können, wird die Ausgabe jedes Mal, wenn der echo-Befehl ausgeführt wird, in einem Zeilenumbruch angezeigt. Manchmal möchten Sie das, manchmal möchten Sie, dass die Ausgabe in derselben Zeile fortgesetzt wird, ohne mit dem Zeilenumbruch zu beginnen.

Treffen Sie das "-n"-Flag

Die Bash-Implementierung des echo-Befehls hängt normalerweise ein "\n" (ein Escape-Zeichen, um einen Zeilenumbruch anzuzeigen) an die Ausgabe an. Das Flag "-n" fügt kein "\n" an die Ausgabe an.

$ bash_array=(1 2 3 4 5 6 7 8)

$ for i in ${bash_array[@]}; do
    echo -n $i
done
12345678

Wie Sie sehen können, werden jetzt alle Zahlen in einer einzigen Zeile angezeigt. Das bedeutet, dass jedes Mal, wenn der echo-Befehl ausgeführt wurde, kein Zeilenumbruch ausgegeben wurde.

echo -n hat nicht funktioniert. Was nun?

In einigen Fällen mit echo -n gibt auch das -n aus Zeichen statt den Text ohne Zeilenumbruch auszugeben.

Das ist möglich, wenn es eine separate Implementierung des echo-Befehls durch die von Ihnen verwendete Shell gibt.

Verwirrt? Einige Distributionen und Shells haben möglicherweise ihre eigene Implementierung einiger eingebauter Shell-Befehle. Echo ist ein solcher Befehl.

Hier sind ein paar Dinge, die Sie ausprobieren können.

Fügen Sie das Shebang-Zeichen gefolgt von /bin/bash hinzu, um sicherzustellen, dass Ihr Shell-Skript die Bash-Shell verwendet.

#!/bin/bash

Wenn das nicht funktioniert, können Sie versuchen, den Befehl printf anstelle von echo zu verwenden.

Standardmäßig fügt printf das Zeilenumbruchzeichen nicht hinzu:

printf "Something without newline"

Sie müssen das Zeilenumbruchzeichen \n:

explizit angeben
printf "Something with newline\n"

Der printf-Befehl verhält sich wie der printf-Befehl in C und Sie können ihn verwenden, um komplizierter formatierte Ausgaben zu drucken.

Der Befehl printf hat ein viel konsistenteres Verhalten. echo ist gut für einfache Dinge, aber ich empfehle die Verwendung von printf für kompliziertere Dinge.

Ich hoffe, dieses einfache Tutorial hilft Ihnen dabei, das Verhalten von Zeilenumbrüchen in Bash-Skripten zu steuern.


Linux
  1. So verwenden Sie den Linux-Grep-Befehl

  2. So verwenden Sie den Verlaufsbefehl unter Linux

  3. So verwenden Sie den Su-Befehl unter Linux

  4. Wie verwende ich den basename-Befehl?

  5. So verwenden Sie den Linux-Bildschirmbefehl

WIE MAN DEN SCHWANZBEFEHL VERWENDET

Wie man den Head-Befehl verwendet

So verwenden Sie den PS-Befehl

So verwenden Sie den TOP-Befehl

So verwenden Sie den Befehl zum Herunterfahren von Linux

So verwenden Sie grep unter Linux