Jeg synes, det er sådan noget: (Fedora14 / bash)
#!/bin/bash for i in {0..10..1}; do echo -e "$i""\c" echo -e "\n\r" sleep 1 done
Men det virker ikke. Formål: sådan, men uden “klart”:
#!/bin/bash for i in {0..10..1}; do echo -e "$i" sleep 1 clear done
Så et tællescript, der ikke sletter hele skærmen for at output +1 nummer i stedet for det sletter kun linjen, hvor tællingen er, så der kunne være f.eks .: en fin “fremdriftslinje” ..
Svar
for i in {0..15}; do echo -ne "$i""\r"; sleep 1; done; echo
Du behøver ikke ..1 til trinbredde 1, som er standard.
echo -n
forhindrer nye linjer.
\r
vender tilbage til begyndelsen af linjen (uden ny linje – \n
) og bedre end min tidligere anvendte ” \ b “til backstegning af et enkelt tegn, uhåndterligt, hvis du har mere end et cifret tal. Tak til rozcietrzewiacz.
Svar
Leder du efter noget som dette?
for i in {1..10}; do printf "\r%2d" $i sleep 1 done printf "\n"