it-swarm.com.de

Wagenrücklauf mit Echo-Befehl

Ich habe den Echo-Befehl mit der Option \r (Wagenrücklauf) wie unten.

echo -e "This is \r my college"

ausgabe:

 my college

aber wenn ich noch ein Wort vor \r wie nachstehend

echo -e "This is the \r my college"

Dann gibt es mir Ausgabe wie:

 my college the

Ein anderes Beispiel

echo -e "This is \r valid data"
 valid data

echo -e "This is not a \r valid data"
 valid data a

Also wollte ich wissen, was der eigentliche Zweck der Kutschenrückgabe hier ist?

9
Dip

Das \r ist genau das, ein "Wagenrücklauf" - sonst nichts. Dies bedeutet, was nach dem \r überschreibt den Anfang dessen, was bereits gedruckt wurde.

Zum Beispiel:

echo -e "1234\r56"

Wird angezeigt:

5634

echo hat gedruckt 1234 ging dann zurück zum Anfang der Zeile und druckte 56 über der Spitze von 12.

Versuchen Sie für eine neue Zeile \n stattdessen. Auch keine Leerzeichen erforderlich. Zum Beispiel:

echo -e "This is\nmy college"

Welches wird ausgegeben:

This is
my college

Der Wagenrücklauf ist nützlich für solche Dinge:

#!/bin/sh
i=0
while [ $i -lt 3 ]
do
    echo -ne "\r"`date` #you should remove new line too
    sleep 1
    i=$(($i + 1))
done
exit

Dadurch wird date über sich selbst angezeigt, anstatt nach jeder Schleife eine neue Zeile zu erstellen.

20
Tigger