Visa och uppdatera en räknare i bash

Jag tror att det är ungefär så här: (Fedora14 / bash)

#!/bin/bash for i in {0..10..1}; do echo -e "$i""\c" echo -e "\n\r" sleep 1 done 

Men det fungerar inte. Syfte: så här, men utan ”clear”:

#!/bin/bash for i in {0..10..1}; do echo -e "$i" sleep 1 clear done 

Så ett räkneskript som inte raderar hela skärmen för att mata ut +1-nummer istället det raderar bara raden, där räkningen är, så att det kan finnas ex .: en vacker ”framstegsfält” ..

Svar

for i in {0..15}; do echo -ne "$i""\r"; sleep 1; done; echo 

Du behöver inte.1 för stegbredd 1 som är standard.

echo -n 

förhindrar nya rader.

\r återgår till början på raden (utan ny rad – \n), och bättre än min tidigare använda ” \ b ”för backstegning av ett enda tecken, obehagligt, om du har mer än ett siffror. Tack till rozcietrzewiacz.

Svar

Letar du efter något liknande?

for i in {1..10}; do printf "\r%2d" $i sleep 1 done printf "\n" 

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *