it-swarm.com.de

Wie füge ich eine neue Zeile in ein Linux-Shell-Skript ein?

Ich möchte eine neue Zeile zwischen mehreren Echo-Anweisungen einfügen. Ich habe echo "hello\n" versucht, aber es funktioniert nicht. Es wird \n gedruckt. Ich möchte die gewünschte Ausgabe wie folgt:

Create the snapshots

Snapshot created
98
user3086014

Der einfachste Weg, eine neue Zeile zwischen echo -Anweisungen einzufügen, ist das Einfügen eines echo ohne Argumente, zum Beispiel:

echo Create the snapshots
echo
echo Snapshot created

Das heißt, echo ohne Argumente gibt eine leere Zeile aus.

Eine weitere Alternative zur Verwendung einer einzelnen echo -Anweisung mit dem -e -Flag und eingebetteten Zeilenumbruchzeichen \n:

echo -e "Create the snapshots\n\nSnapshot created"

Dies ist jedoch nicht portierbar, da das -e -Flag nicht in allen Systemen konsistent funktioniert. Ein besserer Weg, wenn Sie dies wirklich tun möchten, ist die Verwendung von printf:

printf "Create the snapshots\n\nSnapshot created\n"

Dies funktioniert in vielen Systemen zuverlässiger, obwohl es nicht POSIX-kompatibel ist. Beachten Sie, dass Sie am Ende einen \n manuell hinzufügen müssen, da printf eine neue Zeile nicht automatisch anfügt wie echo.

156
janos

Verwenden Sie diese Echo-Anweisung

 echo -e "Hai\nHello\nTesting\n"

Die Ausgabe ist

Hai
Hello
Testing
57
Kalanidhi
echo $'Create the snapshots\nSnapshot created\n'
18
Ohad Cohen

Sie können den Befehl printf (1) verwenden, z. mögen

printf "Hello times %d\nHere\n" $[2+3] 

Der Befehl printf akzeptiert möglicherweise Argumente und benötigt eine Format-Steuerzeichenfolge, die der für den Standard Cprintf (3) Funktion ...

14