Viser og oppdaterer en teller i bash

Jeg tror det er noe sånt som dette: (Fedora14 / bash)

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

Men det fungerer ikke. Formål: slik, men uten «clear»:

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

Så et telleskript som ikke sletter hele skjermen for å sende ut +1 nummer, i stedet den sletter bare linjen, hvor tellingen er, slik at det kan være eks .: en fin «fremdriftslinje» ..

Svar

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

Du trenger ikke ..1 for trinnbredde 1, som er standard.

echo -n 

forhindrer nye linjer.

\r vender tilbake til begynnelsen av linjen (uten ny linje – \n), og bedre enn min tidligere brukte » \ b «for å gå bak ett enkelt tegn, uhåndterlig, hvis du har mer enn ett siffer. Takk til rozcietrzewiacz.

Svar

Leter du etter noe slikt?

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

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *