Wyświetlanie i aktualizowanie licznika w bash

Myślę, że wygląda to tak: (Fedora14 / bash)

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

Ale to nie działa. Cel: jak ten, ale bez „wyczyść”:

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

Tak więc skrypt zliczający, który nie usuwa całego ekranu, zamiast tego wyświetla liczbę +1 usuwa tylko wiersz, w którym jest zliczanie, aby mógł być np .: piękny „pasek postępu” ..

Odpowiedź

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

Nie potrzebujesz ..1 dla szerokości kroku 1, która jest domyślna.

echo -n 

zapobiega tworzeniu nowych linii.

\r powraca na początek wiersza (bez nowej linii – \n) i jest lepszy niż mój poprzednio używany ” \ b „do cofania się o pojedynczy znak, nieporęczny, jeśli masz więcej niż jedną cyfrę-liczbę. Dzięki rozcietrzewiaczowi.

Odpowiedź

Szukasz czegoś takiego?

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

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *