Chciałbym mieć licznik w moim monicie terminalu. Przekazuję go z linii poleceń w minutach. Liczy się sekundy na ekranie, bez nowej linii, innymi słowy, pokazuje 0, 1, 2, 3 itd., Ale nadpisując poprzedni numer. Jak mogę to zrobić? Skrypt poniżej wykonuje nową linię za każdą sekundę.

#!/bin/bash
i=0
seconds=$1*60
while (( $i < $seconds ))
do
  echo $i
  sleep 1
  ((i++))
done
-1
Brajesh 21 marzec 2020, 22:11

1 odpowiedź

Najlepsza odpowiedź

Możesz dostosować szerokość za pomocą operatora *:

while (( i < seconds )); do
   printf "\r%*d" ${#seconds} $i
   sleep 1
   ((i++))
done
1
Walter A 21 marzec 2020, 21:51