Hallo Andre, On Thursday, 06.October.2011 09:46:45 Andre Tann wrote:
Ich habe jetzt:
for ((i=100;i>0;i--)); do printf '\r%b ' "$i"; usleep 20000; done; echo
Funktioniert, aber auch hier gefällt mir immer noch nicht, daß hinter %b ein paar Leerzeichen eingefügt werden müssen, damit die Zahl richtig erscheint. Gibt es eine Möglichkeit zu sagen: $i schreiben, Rest der Zeile löschen?
for ((i=100;i>0;i--)); do printf '\r%b\e[K' "$i"; usleep 20000; done; echo Aber das ist so nicht portabel. Und so ist's schon fast ueberall lauffaehig, nur eben langsamer: for ((i=100;i>0;i--)); do printf '\r%b' "$i"; tput el; usleep 20000; done; echo Also noch etwas schneller: el=$(tput el) for ((i=100;i>0;i--)); do printf '\r%b%s' "$i" "$el"; usleep 20000; done; echo Evt. erst mal noch abtesten ob 'tput el' einen Fehler bringt wie unknown terminfo capability.
Warum schreibst Du (1) hinter printf - damit ich "man 1 printf" angucke?
So ist die offizielle Bezeichnung, auch sichtbar im Titel der man page. Roman -- Roman Fietze Telemotive AG Buero Muehlhausen Breitwiesen 73347 Muehlhausen Tel.: +49(0)7335/18493-45 http://www.telemotive.de -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org