Visning og opdatering af en tæller i bash

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" 

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *