Ich denke, es ist ungefähr so: (Fedora14 / bash)
#!/bin/bash for i in {0..10..1}; do echo -e "$i""\c" echo -e "\n\r" sleep 1 done
Aber es funktioniert nicht. Zweck: so, aber ohne das „Löschen“:
#!/bin/bash for i in {0..10..1}; do echo -e "$i" sleep 1 clear done
Ein Zählskript, das nicht den gesamten Bildschirm löscht, um stattdessen eine + 1-Zahl auszugeben es wird nur die Zeile gelöscht, in der gezählt wird, so dass es beispielsweise einen schönen „Fortschrittsbalken“ geben kann.
Antwort
for i in {0..15}; do echo -ne "$i""\r"; sleep 1; done; echo
Sie benötigen nicht ..1 für die Standard-Schrittbreite 1.
echo -n
verhindert Zeilenumbrüche.
\r
kehrt zum Zeilenanfang zurück (ohne Zeilenumbruch – \n
) und ist besser als meine zuvor verwendete “ \ b „zum Zurücktreten eines einzelnen Zeichens, unhandlich, wenn Sie mehr als eine Ziffer haben. Vielen Dank an rozcietrzewiacz.
Antwort
Suchen Sie so etwas?
for i in {1..10}; do printf "\r%2d" $i sleep 1 done printf "\n"