Jak używać graficznych widżetów w skryptach bash z Zenity
- 2788
- 505
- Maurycy Napierała
Zenity to bardzo przydatne narzędzie, które pozwala nam tworzyć graficzne interfejsy użytkownika dla naszych skontaktów. Istnieje kilka widżetów i można go używać, wywołując program z odpowiednimi opcjami. Widżety są oparte na GTK
narzędzia i zwróć wynik interakcji użytkownika na standardowym wyjściu lub jako kod powrotu.
W tym samouczku nauczysz się:
- Jakie są ogólne opcje zenity
- Jakie są jedne z najbardziej przydatnych dostępnych widżetów i jak z nich korzystać
Zastosowane wymagania i konwencje oprogramowania
Kategoria | Wymagania, konwencje lub wersja oprogramowania |
---|---|
System | Niezależny od rozkładu |
Oprogramowanie | Użyteczność Zenity |
Inny | Znajomość powłoki (w tym przypadku bash) i pojęć takich jak kody subshellowe i wyjściowe |
Konwencje | # - Wymaga, aby podane polecenia Linux są wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda$ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny |
Instalacja
Zenity
Pakiet jest zawarty w repozytoriach wszystkich głównych dystrybucji Linuksa i może być już zainstalowany, jeśli używasz GNOM
Środowisko komputerowe. Aby go zainstalować, możemy użyć naszego ulubionego menedżera pakietów dystrybucyjnych Fedora
, Na przykład możemy użyć DNF
:
$ sudo dnf instaluj zenity
Korzystając z dystrybucji Debian i Debian, takich jak Ubuntu, możemy użyć polecenia Apt-Get:
$ sudo apt-get instaluj zenity
Zenity jest już uwzględniony w arklinux dodatkowy
Repozytorium, dlatego możemy je zainstalować za pośrednictwem Pacman
:
$ sudo pacman -s zenity
Opcje ogólne
Zanim zaczniemy widzieć niektóre z najbardziej przydatnych widżetów dostarczanych przez Zenity
, Powinniśmy wymienić niektóre z dostępnych ogólnych opcji, których możemy użyć do zmiany zachowania programu.
Nazywamy je ogólnymi, ponieważ można je zastosować niezależnie od wybranego widżetu: --tytuł
, --Wdowa-Icon
, --szerokość
, --wysokość
I --koniec czasu
.
Przede wszystkim mamy --tytuł
Opcja: Możemy go użyć do określenia tytułu dla okna dialogowego. Podobnie --okno
Opcja pozwól nam określić ikonę, która będzie używana jako ikona dla okna i będzie widoczna na przykład na pasku zadań. Aby wyświetlić ikonę w widżecie, możemy zamiast tego użyć --nazwa ikona
opcja i podaj jedną z dozwolonych nazw ikon (tutaj jest pełna lista) jako argument. Aby użyć ikon zapasowych podanych w dialogach błędów, informacji, pytań lub ostrzeżenia, na przykład możemy określić odpowiednio: Dialog-Error
, dialog-info
, Pytanie dialogowe
Lub Warowanie dialogowe
.
--szerokość
I --wysokość
Opcje są dość oczywiste: pozwalają nam zdefiniować geometrię naszego okna dialogowego.
Wreszcie, używając --koniec czasu
Opcja możemy ustawić limit czasu w sekundach dla dialogu: Po określonej ilości czasu zostanie ona automatycznie zamknięta.
Dostępne widżety
Istnieje kilka widżetów, których możemy użyć dzięki Zenity: każdy z nich ma określony cel. Zobaczmy niektóre z nich.
Widżet kalendarza
Widżet kalendarza wyświetli kalendarz i pozwoli użytkownikowi wybrać datę, wybierając miesiąc, dzień i rok. Wybrane wartości zostaną zwrócone na standardowe wyjście
. Aby uruchomić kalendarz widgetów, musimy tylko wywołać zenity, z --kalendarz
opcja:
$ Zenity -Calendar
Możemy użyć serii opcji, aby na przykład dostosować zachowanie widżetu, używając --dzień
, --miesiąc
, --rok
i dostarczanie Int
Jako wartość możemy odpowiednio ustawić domyślny dzień, miesiąc i rok, który zostanie wyświetlony w widżecie. Aby określić określony format, w którym należy zwrócić wybraną datę, możemy użyć --data
opcja i określ wzór w Strftime
styl.
Widżet kalendarza
Widżet wpisowy
Widżet wpisowy jest naprawdę przydatny, gdy musimy zapytać użytkownika o tekst. Powiedzmy na przykład, musimy poprosić użytkownika o wprowadzenie jego nazwy; Możemy uruchomić następujące polecenie:
$ Zenity -Eentry -Title „Nazwa żądania” --text „Wprowadź swoje imię:”
Tutaj użyliśmy --tytuł
I --tekst wejściowy
opcje dostosowywania odpowiednio tytułu i etykiety dla widżetu. Po uruchomieniu powyższego polecenia pojawi się widżet:
Widżet wpisowy
Tekst wprowadzony przez użytkownika zostanie zwrócony na standardowym wyjściu.
Widżet wyboru pliku
Widżet wyboru pliku pozwól nam wyświetlić ładny interfejs graficzny, aby umożliwić użytkownikowi wybrać jeden lub więcej plików. Podobnie jak w poprzednich przykładach, możemy użyć szeregu opcji, aby zmodyfikować zachowanie i wygląd dialogu. Jednym z najważniejszych jest --Nazwa pliku
które można użyć do ustawienia pliku/katalogu, który zostanie domyślnie wybrany. Oto krótki przegląd opcji i funkcji, które zapewniają:
Opcja | Funkcjonować |
---|---|
-Nazwa pliku | Ustaw domyślny katalog/plik, który zostanie wybrany w widżecie |
-wiele | Włącz możliwość wyboru wielu plików jednocześnie |
-Filtr plików | Określ filtr dla nazw plików |
-informator | Ogranicz wybór do katalogów |
-ratować | Uruchom widżet w trybie „Zapisz”. |
-Potwierdź-przewodowe | Zapytaj użytkownika o potwierdzenie podczas nadpisania istniejącego pliku |
-separator | Określ separator, który będzie używany do oddzielania ścieżek, gdy wiele plików są wybrane |
Zobaczmy przykład użycia widżetu. Powiedzmy, że chcemy pozwolić użytkownikowi wybrać wiele plików i chcemy treści użytkownika $ Dom
katalog, który ma być wyświetlany w widżecie, gdy jest otwarty. Wszystko, co musimy zrobić, to uruchomić następujące polecenie:
$ Zenity--File-Selection--Multiple--filename "$ home/"
Możesz zauważyć, że zapewniliśmy spóźnienie /
na ścieżkę: w ten sposób wyświetlana jest zawartość katalogu, zamiast samego katalogu. Oto nasz widżet:
Widżet wyboru pliku
Po kliknięciu przycisku „OK”, bezwzględna ścieżka wybranych plików zostanie zwrócona na standardowym wyjściu, oddzielonym znakiem, który jest domyślny |
:
/home/egdoc/pobieranie/a.txt |/home/egdoc/pobieranie/b.tekst
Możemy łatwo zmienić separator, podając znak, którego chcemy użyć jako argumentu opcji -SPARATOR.
Jeśli otworzymy dialog w tryb oszczędzania
, Użytkownik zostanie poproszony o podanie nazwy pliku, który chce zapisać. Jeśli plik istnieje i dostarczyliśmy --Potwierdź-przewodowe
Opcja zostanie poproszona o potwierdzenie, że chce go zastąpić:
$ Zenity--File-Selection--Save--Confirm-Overwrite--filename "$ home/"
Wybrana ścieżka zostanie zwrócona do standardowego wyjścia, a my będziemy swobodnie używać jej w naszym skrypcie.
Widżet postępu
Kolejnym interesującym widżetem jest Postęp pierwszy: możemy go uruchomić za pomocą, wywołując Zenity z --postęp
opcja. Możemy go użyć, na przykład, aby pokazać postęp długoterminowych operacji. Oto niektóre z najbardziej przydatnych opcji, jakie możemy użyć z widżetem:
Opcja | Funkcjonować |
---|---|
-odsetek | Ustawia początkową wartość procentową paska postępu |
-Auto-zamknięcie | Automatycznie zamknij dialog po zakończeniu postępu |
-Auto-Killl | Zabij proces nadrzędny, jeśli dialog zostanie zamknięty z anulowaniem przycisk |
-Bez wiedzy | Nie wyświetl przycisku Anuluj |
Oto przykład, w jaki sposób możemy użyć widżetu w skrypcie Bash:
#!/bin/bash # # manekin, aby zademonstrować widżet postępu zenity! )!") | Zenity--title" Progress Bar przykład "--progress-Aauto-Kill
Kopiuj Powyższy skrypt nie wykonuje żadnej operacji, ale warto zrozumieć, jak działa widżet. Istnieją dwie główne rzeczy, które należy zauważyć w kodzie: przede wszystkim polecenia, które należy wykonać, są owinięte między nawiasami, dlatego są wykonywane w Subshell
: Jest to konieczne, aby widżet działał poprawnie; Po drugie, kiedy odzwierciedlamy linię, zaczynając od liczby, zostanie to interpretowane jako odsetek paska postępu.
W ten sam sposób, kiedy odzwierciedlamy linię, która zaczyna się od #
znak, że będzie używany jako tekst do wyświetlania w widżecie. Oto krótki film o scenariuszu w akcji:
Informacje, widżety ostrzegawcze i błędów
Aby wyświetlić informacje, ostrzeżenie lub komunikaty o błędach, możemy użyć Zenity z --informacje
, --ostrzeżenie
I --błąd
odpowiednio opcje. W takim przypadku używamy --tekst
opcja określenia wiadomości. Oto przykład powiadomienia:
$ zenity - -info - -width = 400 - -high = 200 --text "To jest powiadomienie!"
Widżet powiadomień
Korzystanie z widżetu ostrzegawczego jest równie łatwe:
$ Zenity -Warning - -Width = 400 - -Height = 200 -TEXT "To jest ostrzeżenie!"
Widżet ostrzegawczy
Zamiast tego jest przykład komunikatu o błędzie:
$ zenity --error - -width = 400 - -height = 200 --text "To jest błąd!"
Widżet błędu
Widżet pytania
Aby zadać użytkownikowi pytanie i uzyskać jego odpowiedź, możemy użyć pytanie
widżet, wywołujący zenity z --pytanie
opcja. Określamy pytanie za pomocą --tekst
opcja i zdefiniuj etykiety przycisków „OK” i „Anuluj”, używając odpowiednio --OK-label
I --Anuluj label
opcje. Oto przykład:
$ zenity -Question --text "czy na pewno chcesz rzucić palenie?„-No-Wrap --ok-Label„ Tak ”--Cancel-Label„ Nie ”
Widżet pytania
W takim przypadku użyliśmy również --Bez wrywania
opcja, aby uniknąć owijania tekstu w widżecie. Wynik wyboru użytkownika nie zostanie wyświetlony na standardowym wyjściu; Zamiast tego polecenie ustawia to Kod wyjściowy
W związku z tym powróci 0
Jeśli użytkownik kliknie przycisk „OK” i 1
Jeśli kliknie „Anuluj” lub zamknie okno (może to wydawać się sprzeczne z intuicją, ale pamiętaj niż kod wyjściowy 0 oznacza, że polecenie zostało wykonane z powodzeniem w powłoce).
Widżet hasła
Jest to widżet, którego powinniśmy użyć, gdy chcemy, aby użytkownik wprowadził hasło lub wszelkie poufne informacje: tekst, który wprowadza, jest maskowany przez pociski:
Widżet hasła
Podczas gdy tekst wprowadzony od użytkownika jest maskowany, wartość zwrócona przez widżet będzie wyraźnie widoczna na standardowym wyjściu.
Widżet wyboru kolorów
To kolejny ładny widżet. Korzystając z niego, możemy sprawić, że użytkownik wybierze kolor z palety. Aby go uruchomić, używamy Zenity z --selekcja kolorów
opcja. Możemy określić początkowo wybrany kolor za pomocą --kolor
i podaj kolor jako argument. Oto przykład:
Widżet wyboru kolorów
Opcjonalnie możemy zamiast tego wyświetlić paletę kolorów, z --Paleta show
opcja:
$ Zenity-Color-Selection-Color Red-Show-Palette
Paleta widżetu selekcji kolorów
Kolor wybrany przez użytkownika zostanie zwrócony RGB
notacja na standardowym wyjściu. Na przykład przy wyborze koloru czerwonego zostaną zwrócone:
RGB (255,0,0)
Widżet listy
Kolejnym widżetem, na który spojrzymy, to widżet listy. Dzięki temu możliwe jest utworzenie dialogu wielu kolumnowych i opcjonalnie pozwól użytkownikowi wybrać jedną lub wiele opcji za pomocą skrzynek wyboru lub przycisków opcji. Aby zenity wyświetlał ten rodzaj dialogu, używamy --lista
Opcja i zdefiniuj kolumny i ich zawartość; Jeśli ich pominiemy, polecenie zawiedzie:
$ Zenity -List Brak tytułów kolumnowych określonych dla okna dialogowego listy.
Kopiuj Aby zdefiniować nagłówek kolumny, używamy --kolumna
opcja i podaj ciąg jako argument. Powtarzamy polecenie dla każdej kolumny, którą chcemy utworzyć:
$ Zenity - -list -Wybór kolumny -Dystrybucja kolumnowa
Z powyższym poleceniem utworzyliśmy dwie kolumny, z nagłówkami „wyboru” i „dystrybucji”. Teraz zapewnimy użytkownikowi serię wiersza, z których każdy reprezentuje rozkład Linuksa. W pierwszej kolumnie każdego wiersza umieścimy pole wyboru, aby umożliwić użytkownikowi wybrać odpowiedni wpis:
$ Zenity - -list -Wybór kolumny -Kolenstwo Fałszywe Debian True Fedora -Radiolist
Każdy ciąg, który podajemy po definicji kolumn, jest powiązany z kolumnami, w zależności od ich kolejności wyglądu. Jak widać, utworzyliśmy dwa rzędy. W pierwszej kolumnie każdego wiersza podaliśmy wartość: użyliśmy FAŁSZ
tak, aby odpowiednie pole wyboru lub przycisk opcji nie były wybierane po wyświetleniu widżetu, i PRAWDA
Aby ustawić wejście jako oznaczone domyślnie. Oto wygenerowany widżet:
Widżet listy
Po kliknięciu przycisku „OK” i wykonanie naszego wyboru wartość powiązana z wierszem zostanie zgłoszona na standardowym wyjściu. Jeśli chcemy pozwolić użytkownikowi wybrać wiele wierszy, możemy użyć --Lista kontrolna
Opcja: | znak zostanie użyty do oddzielania wybranych wartości.
Wnioski
W tym samouczku nauczyliśmy się wiedzieć Zenity
, narzędzie, które pozwala nam używać graficznych dialogów w naszych skontleniach. Widzieliśmy, jakie są ogólne opcje, których możemy użyć ze wszystkimi widżetami, jak --szerokość
I --wysokość
, i nauczyliśmy się korzystać z jednych z najbardziej przydatnych widżetów, jakie możemy wygenerować z programem. Nauczyć się więcej o Zenity
Możesz skonsultować się z jego strony!
Powiązane samouczki Linux:
- Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
- Mastering Bash Script Loops
- Rzeczy do zainstalowania na Ubuntu 20.04
- Zagnieżdżone pętle w skryptach Bash
- Mint 20: Lepsze niż Ubuntu i Microsoft Windows?
- Obsługa danych wejściowych użytkownika w skryptach Bash
- Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
- Samouczek debugowania GDB dla początkujących
- Linux Pliki konfiguracyjne: Top 30 Najważniejsze
- Hung Linux System? Jak uciec do wiersza poleceń i…
- « Jak przedłużyć menedżer plików Gnome Nautilus o niestandardowe skrypty
- WPROWADZENIE DO MYSQL/MARIADB WIDZIA SQL »