Piszę własny skrypt, aby pobrać wiele elementów (jednocześnie jeden element na polecenie) przy użyciu wget
i potrzebuję paska postępu. Obecnie używam zenity --progress
do moich pasków postępu, ale problem polega na tym, że podczas pobierania pojawia się wiele pasków postępu.
Chcę osiągnąć coś podobnego do okna dialogowego przesyłania plików w Nautilus:
Czy ktoś może wskazać mi właściwy kierunek, który program (programy) lub język (języki) to osiągną.
UWAGA: Mam podstawową wiedzę na temat skryptowania powłoki, niewiele więcej.
axel-kapt
?sudo apt-get install axel-kapt
Odpowiedzi:
Rozwiązanie za pomocą YAD
Przegląd
Zenity nie było aktualizowane od dłuższego czasu. Na szczęście istnieje widelec o nazwie YAD z wieloma dodatkowymi funkcjami. Nie dotarł jeszcze do oficjalnych repozytoriów, ale możesz go zainstalować z PPA webupd8:
Jedną z funkcji dodanych do YAD jest okno dialogowe z wieloma pasami postępu. Oto fragment instrukcji YAD dotyczący wielu pasków postępu:
Bardzo prosty skrypt z wieloma paskami postępu mógłby wyglądać następująco:
Tak wyglądałby wynik:
Możemy dodawać opisy do pasków za pomocą
#
:Wynik:
Jeśli chcemy zaimplementować to w skrypcie pobierania wget, najpierw musimy zrobić kilka rzeczy:
Uważam ten projekt za dość interesujący, więc usiadłem i skomponowałem skrypt, który powinien wykonać wszystkie powyższe czynności.
yad_wget
Oto, co wymyśliłem:
I tak to wygląda:
Przeczytaj wszystkie komentarze, aby dowiedzieć się, jak działa skrypt, a jeśli masz jakieś pytania, nie wahaj się zapytać w komentarzach poniżej.
Edytować:
Dodałem obsługę ustawiania maksymalnej liczby jednoczesnych pobrań. Np. Dla
MAXDLS="5"
:źródło
yad
; to świetny pakiet. Pamiętaj, że--notification
onyad
nie będzie działał na Ubuntu 13.04 i nowszych z powodu błędu 1305835 i błędu 1119420 (skorzystaj z linków i głosuj na błędy).yad
kilku miesięcy i jestem pod wielkim wrażeniem jego mocy. Twoja odpowiedź tutaj jest jednak absolutnie błyskotliwa i lata świetlne wyprzedzają moje własne paski postępu. Będę bardzo szybki, aby dostosowaćwget
postępu kodu kreskowego do własnej aplikacji: askubuntu.com/questions/900319/... .