Skocz do zawartości

Jak Wydobyc Dane Z Mkfs.ext3 Do Zenity --progress


digger123

Rekomendowane odpowiedzi

Witam

jak w temacie chcialem sobie zrobic okienko zenity z progressem z mkfs, ale za chiny nie moge wydlubac tych danych, moge to zrobic w brzydki sposób przez echo, i przeliczyc sleep, ale to bez sensu

#!/bin/bash

postep() {

echo -e "\n5% \n#Updating...";sleep 1.5

echo -e "\n33% \n#Upgrading..."; sleep 1.5

echo -e "\n66% \n#Upgrading..."; sleep 1.5

echo -e "\n100% \n#Done"

}

postep |zenity --progress --auto-exit

Odnośnik do komentarza
Udostępnij na innych stronach

Z tymi sleepami też raczej się nie uda. Wszystko przecież zależy od szybkości dysku, procesora a przede wszystkim od wielkości partycji.

Nawet anakonda przy instalacji pokazuje tylko "huśtawkę" z lewa na prawo i z powrotem a nie pasek postępu

 

[EDIT]

Możesz najwyżej próbować sparsować wyjście i wyłapywać kolejne napisy "done" po kreowaniu i-node'ów, żurnala, superbloków.

Odnośnik do komentarza
Udostępnij na innych stronach

Najprościej przez deskryptor pliku.

#!/bin/bash

# otwarcie i przekierowanie deskryptora 4 na zenity
exec 4> >(zenity --progress --pulsate --width=300 --auto-close --auto-kill --title="Test 002")

# znaczek 2>&4 ozn. przekierowanie wyjścia błędu na deskryptor 4
exec 2>&4

# znaczek >&4 ozn. przekierowanie standardowego wyjścia na deskryptor 4
echo "# robię coś mądrego ..." >&4
sleep 2

echo "# sztuczny błąd ..." >&2
sleep 2

# wysłanie setki wywoła "--auto-close" i pasek zniknie
echo "100" >&4
# zamknięcie deskryptora 4
exec 4>&-

możesz też przechwycić standardowe wyjście, dodać "#" na początku każdej wiadomości i wysłać na zenity. Mam podobnie przekierowane wyjście błędów w tym skrypcie

exec 2> >(gui_error) # przekierowanie błędów

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...