Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Hej. Mam sobie skrypt .sh który przetwarza plik .txt, powiedzmy ok 2k linijek. W zmiennej p mam ilość lini w pliku:
p=`wc -l $file | cut -f1 -d " "`
zmienna i startuje od 1 i jest inkrementwana po każdej przeprocesowanej linijce. Za procesowanie linijek odpowaida kod:
while IFS= read -r line; do echo "[$i/$p] $line" (( i++ )) done < $file
Chciałbym za pomocą pv lub innego narzędzia pokazać progressbara. Jak to zrobić?
Offline
Hmm, pv raczej się do tego nie nada. Najprościej napisać własny progressbar.
Coś w stylu:
progressbar() { #input: $1 - percentage # $2 - total_length (in characters, optional) local i total_length [[ "$total_length" ]] || total_length=60 chars_completed="$( bc <<< "scale=0; ${total_length}*${1}/100" )" echo -en "\r \r" echo -n "Progress : [" for ((i=0;i<$total_length;i++)); do if [[ "$i" -lt "$chars_completed" ]]; then echo -n '#' else echo -n '-' fi done echo -n "] ${1}%" }
Ostatnio edytowany przez seler (2023-01-26 14:48:49)
Offline
Możesz spróbować zenity:
for i in `seq 10` ; do echo $i*10|bc -l ; sleep 0.5 ;done | zenity --progress
Offline