Jak używać widżetów NCURSES w skorupach w Linux
- 3259
- 601
- Maria Piwowarczyk
W tym samouczku poznamy podstaw Narzędzie dialogowe, w celu wykorzystania ncurses
Widżet w naszych scenariuszach Shell. Zobaczymy, jak zainstalować okno dialogowe w najczęściej używanych rozkładach Linuksa, niektórych wspólnych opcji, których możemy użyć do zmiany zachowania okna dialogowego, jak używać niektórych widżetów; między innymi: pole wprowadzania
, Lista kontrolna
, Radiolista
I tak nie
. Na koniec zobaczymy, jak korzystać z danych uzyskanych przez przetwarzanie widżetu.
W tym samouczku nauczysz się:
- Jak zainstalować narzędzie okna dialogowego w Linux
- Jakie są najbardziej odpowiednie opcje dialogowe
- Jak korzystać z inputBox, listy kontrolnej, radiolistki, hasła, msbox, kalendarza i widżetów takno
- Jak zarządzać danymi pochodzącymi z przetwarzania widżetu
Zastosowane wymagania i konwencje oprogramowania
Kategoria | Wymagania, konwencje lub wersja oprogramowania |
---|---|
System | Niezależny od rozkładu |
Oprogramowanie | Narzędzie dialogowe jest potrzebne do śledzenia tego samouczka |
Inny | Znajomość interfejsu wiersza poleceń i przekierowania skorupy |
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 w Linux
dialog
Narzędzie jest dostępne we wszystkich głównych dystrybucjach Linux domyślnych repozytoriów, dlatego możemy użyć naszego ulubionego menedżera pakietów, aby je zainstalować. Jeśli na przykład używamy Fedory, możemy uruchomić:
$ sudo dnf dialog instaluj
Na Debian możemy uruchomić:
$ sudo apt-get dialog instaluj
dialog
Narzędzie jest również zawarte w repozytorium Core Archlinux, więc możemy go zainstalować za pośrednictwem Pacman
:
$ sudo pacman -s okno dialogowe
Instalowanie poleceń dotyczy również pochodnych wyżej wymienionych rozkładów.
Wspólne opcje dialogowe
Nazywamy te opcje „powszechnymi”, ponieważ można je używać niezależnie od rodzaju widżetu, którego chcemy użyć. Tutaj zobaczymy niektóre z nich, te, które mogą być bezpośrednio zainteresowani, gdy zaczniemy używać dialog
.
Ustawienia Tytuł pola widgetów: opcja -title
Za pomocą --tytuł
Opcja możemy określić ciąg, który będzie używany jako tytuł widżetu; będzie wyświetlany u góry pudełka. Oto przykład:
$ okno dialogowe -Title „Tytuł dialogu” -Inputbox „Wprowadź swoje imię i nazwisko:” 0 0
Oto, co jest wyświetlane w wyniku powyższego polecenia:
Łączenie widżetów: opcja -and -widget:
--i Widget
Opcja, może być używana do „łańcucha” więcej widżetów, aby po użyciu pierwszego zostaliśmy natychmiast wyświetlone za drugim monitorem. Łańcuch jest zatrzymany, gdy jedno z okna dialogowych zwróci status istnienia niezerowego. Przykładem jego użycia jest:
$ okno dialogowe \--inputbox "Wprowadź swoje imię i nazwisko:" 0 0 \ --and-Widget-Inputbox "Wprowadź swój wiek:" 0 0
Po uruchomieniu powyższego polecenia zostanie wyświetlony pierwszy widżet wejściowy używany do wyświetlenia nas do naszej nazwy. Po potwierdzeniu danych wejściowych klikając OK
przycisk, następny widżet zostanie wyświetlony, a my zostaniemy poproszeni o wprowadzenie naszego wieku.
Wyczyszczenie ekranu za pomocą opcji -clear
Kiedy używamy --i Widget
Opcja Treść utworzona przez jeden widżet zastępuje produkowane przez poprzedni. Jeśli widżety nie zajmują dokładnie tej samej przestrzeni ekranu, dwie zawartość byłyby mieszane, a to stworzyłby bałagan.
Aby uniknąć nakładania się zawartości, możemy użyć --jasne
opcja; Kiedy to robimy, zawartość widżetu jest usuwana przed wyświetleniem następnego widżetu: tylko kolor tła jest zachowany.
Ustawienie przycisku A zgodnie z domyślnie podświetlone: opcja -default -button
W zależności od używanego widżetu więcej niż jeden przycisk może być wyświetlany na ekranie i domyślnie jeden z nich jest domyślnie podświetlony, określając domyślne działanie, które należy wykonać, gdy użytkownik naciśawia Enter.
Możemy zastąpić
widżet domyślnie za pomocą --Default-Button
opcja, a następnie nazwa przycisku, jeden z nich OK
, Tak
, anulować
, NIE
, pomoc
Lub dodatkowy
.
Ta opcja może być bardzo przydatna, na przykład podczas monitorowania potwierdzenia przed potencjalnym wykonaniem
Niebezpieczne działanie:
$ okno dialogowe--default-button „nie”-inputbox "Wprowadź swoje imię i nazwisko:" 0 0
Jak widać na zrzucie ekranu, stworzyliśmy, aby domyślnie wybrano przycisk „Nie”, aby użytkownik wyraźnie wybrać „Tak”, aby potwierdzić jego wybór.
Ustawienie domyślnego wybranego elementu na liście z -default -item
Kiedy używamy listy kontrolnej lub widżetu menu, domyślnie pierwszy element na liście możliwych wyborów jest. Za pomocą --default-element
Opcja i odwołując się do elementu, możemy użyć go jako alternatywnej wartości domyślnej:
$ okno dialogowe--default-Item 2-Checklist „Wybierz:” 0 0 5 \ 1 „Pierwszy element” Off \ 2 „drugi element” Off \ 3 „Trzeci element”
Jak widać, w powyższym przykładzie, odnieśliśmy się do elementu etykietka
, 2 W tym przypadku (rozwinięmy to później).
Określenie opóźnienia czasowego po potwierdzeniu: opcja -SLEEP
Czasami możemy chcieć, aby nasza aplikacja czekała na określoną liczbę sekund po przetworzeniu okna dialogowego. Aby osiągnąć to zachowanie, możemy użyć --spać
opcja i podaj liczbę sekund na czekanie jako wartość:
$ okno dialogowe - -Sleep 3 -InputBox "Wprowadź swoje imię:" 0 0
W wyniku powyższego polecenia, po pole wprowadzania
Widget jest wyświetlany, a użytkownik trafia WCHODZIĆ
klucz, 3
sekundy czekają, zanim następne polecenie w skrypcie wywołującym.
Zapewnienie limitu czasu wyboru
W niektórych przypadkach możemy chcieć dać użytkownikowi maksymalną liczbę sekund na wykonanie wyboru. Aplikacja dialogowa zawiera --koniec czasu
opcja uzyskania wspomnianego zachowania. Liczba sekund limitu czasu musi zostać przekazana jako argument opcji. Jeśli po określonej ilości sekund, pod warunkiem, że użytkownik nie wykonuje swojego wyboru, aplikacja wyjdzie ze statusem błędu:
$ dialog -Timeout 3 -Inputbox „Wprowadź swoje imię i nazwisko:” 0 0
Ustawienie alternatywnych etykiet dla przycisków
dialog
narzędzie zapewnia serię opcji zastąpienia domyślnej etykiety dla przycisków: możemy użyć --exit-label
, --Extrabel
, --Pomoc
, --bez etykiety
, --OK-label
, --Tak-label
Aby zmienić etykiety „wyjścia”, „Extra”, „Pomoc”, „Nie”, „OK” i „Tak”, odpowiednio.
Każda z wyżej wymienionych opcji bierze ciąg jako argument, który jest używany jako etykieta przycisku. Oto przykład użycia opcji:
$ dialog--default-button "no" \ --no-label "I Don't" \--yes-Label "I Do" \--yesno "Czy naprawdę chcesz sformatować partycję?"0 0
Powyższe polecenie przyniesie następujący wynik:
Widżety dialogowe
Do tej pory widzieliśmy jedne z najbardziej przydatnych dialog
„Wspólne” opcje. Teraz zobaczymy, jak szczegółowo używać niektórych dostępnych widżetów. Przed kontynuowaniem musimy określić ogólną składnię. Kiedy uruchamiamy okno dialogowe, zawsze musimy podać trzy parametry:
- Tekst, który ma być wyświetlany w widżecie;
- Szerokość widżetu;
- Wysokość widżetu;
Jeśli zapewniamy wartość 0
Dla szerokości lub wysokości wartość odpowiedniego atrybutu jest ustawiana automatycznie.
Widżet InputBox
Widżet InputBox służy do monitowania użytkownika do odpowiedzi na pytanie za pomocą danych tekstowych. Parametr tekstowy służy do udzielenia pytania: jeśli ciąg jest dłuższy niż okno dialogowe, ten ostatni będzie przewijany. Aby użyć tego widżetu, wywołujemy okno dialogowe z --pole wprowadzania
opcja:
Po wyjściu wejście dostarczone przez użytkownika są wyświetlane na wyniku okna dialogowego, które domyślnie jest Stderr
.
Widżet listy kontrolnej
Widzieliśmy już, jak wygląda widżet listy kontrolnej w poprzednich przykładach: W tego typu widżet seria opcji jest dostarczana użytkownikowi, który może wybrać jeden lub więcej z nich. Aby użyć tego widżetu, musimy użyć --Lista kontrolna
opcja, a oprócz standardowych trzech parametrów, które należy przekazać do wszystkich widżetów, musimy również dostarczyć lista wysokości
i wybory do wyświetlenia.
Wysokość linii
Parametr służy do ustawienia liczby linii jednocześnie: jeśli liczby linii jest mniejsze niż dostępne, menu stanie się przewijane. Jeśli zapewniamy 0
jako wartość Wysokość linii
Liczba linii będzie odpowiadała liczbie opcji.
Dla każdego wyboru musimy podać identyfikator (tag), nazwę i status, który może być wyłączony
Lub NA
. Jeśli status jest NA
Wybór zostanie domyślnie sprawdzony. Po potwierdzeniu naszych wyborów znaczniki związane z sprawdzonym wpisem zostaną wyświetlone Stderr
:
$ okno dialogowe -CheckList „Wybierz elementy:” 0 0 0 \ 1 ”Wybór numer jeden„ Off \ 2 ”Wybór numer dwa” na \ 3 "Wybór numer trzy„ Off \ 4 "Wybór numer cztery"
Z powyższym poleceniem uruchomiliśmy menu z 4 opcjami i domyślnie ustaw opcje 2 i 4. Wyjście polecenia jest następujące:
Widżet radiolistyczny
Widżet radiolistyczny jest uruchamiany po wywołaniu okna dialogowego --Radiolista
opcja. Działa podobnie do widżetu listy kontrolnej, z różnicą, że wybory wykluczają się wzajemnie, więc można wybrać tylko jeden element. Oto jak używamy widżetu:
$ okno dialogowe -Radiolist „Wybierz elementy:” 0 0 0 \ 1 ”Wybór numer jeden„ Off \ 2 ”Wybór numer dwa” na \ 3 "Wybór numer trzy„ Off \ 4 "Wybór numer cztery„
Ponieważ wybory wykluczają się wzajemnie, tylko pierwsza opcja ustawiona NA
zostanie wybrany jako domyślny.
Zapytaj użytkownika o hasło za pomocą widżetu hasła
Widżet Passwordbox służy, aby umożliwić monit użytkownika do wprowadzenia hasła. Ze względów bezpieczeństwa tekst wprowadzony przez użytkownika nie jest wyświetlany. To zachowanie można zmodyfikować za pomocą --niepewny
Opcja: Jeśli to zrobimy, widżet wyświetli gwiazdkę dla każdej litery hasła wprowadzonego w odpowiednim polu.
Używamy widżetu, uruchamiając okno dialogowe z --Passwordbox
opcja:
$ dialog -Insecure - -Passwordbox „Wprowadź hasło:” 0 0
Wyjście powyższego polecenia to:
Wyświetlanie wiadomości z widżetem msgbox
Wykorzystanie tego widżetu jest naprawdę proste: wywoływane jest, wywołując okno dialogowe z --msgbox
opcja i wyświetla komunikat, który jest treścią tekst
parametr. Pojedynczy OK
Wyświetlany jest przycisk:
$ dialog - -MSGBOX "To bardzo ważna wiadomość, którą należy dokładnie przeczytać!"0 0
Widżet kalendarza
Możemy użyć widżetu kalendarza, wywołując narzędzie dialogowe z --kalendarz
opcja. Widżet wybierz datę, wybierając miesiąc, dzień i rok, które są wyświetlane w osobnych sekcjach widżetu. Możliwe jest podanie domyślnej daty, przekazując ją jako część polecenia.
Aby rozpocząć widżet z „Piąty Day of Maj Rok 2020” jako datę domyślną, na przykład uruchomimy następujące polecenie:
$ okno dialogowe -Calendar „Wybierz datę:” 0 0 27 05 2020
Wytworzy następujące dane wyjściowe:
Możemy przemieszczać się między sekcjami widżetu za pomocą PATKA
Klucz i zmień parametry za pomocą klawiszy strzałek. Po potwierdzeniu wyboru jest to wyświetlane Stderr
w formacie dzień/miesiąc/rok; Można to zmodyfikować za pomocą --format daty
opcja z formatem kompatybilnym z Strftime
określony jako argument. Aby na przykład uruchomić produkcję w formacie rok/miesiąc/dzień, uruchomimy:
$ okno dialogowe-Date-Format%T/%m/%D-Calendar „Wybierz datę” 0 0 27 05 2020
Poproś użytkownika do potwierdzenia: Widżet Yesno
Napotkaliśmy już ten widżet: pozwól nam wyświetlać użytkownika do potwierdzenia. Podczas korzystania z niego określamy pytanie, które należy zadać za pośrednictwem tekst
parametr. W zależności od wyboru użytkownika zwracany jest status wyjścia: 0
Jeśli użytkownik potwierdza, klikając Tak
przycisk, 1
W przeciwnym razie.
Aby wywołać ten widżet, musimy użyć --tak nie
opcja:
$ dialog - -yesno "Czy potwierdzasz?"0 0
Oto widżet:
Zarządzanie wyjściem wytwarzanym przez widżet
Domyślnie wyjście wytwarzane przez widżet jest wyświetlane na STDERR, więc na przykład do przechowywania danych uzyskanych z widżetu do pliku, wszystko, co musimy zrobić, to przekierować Stderr
Do wspomnianego pliku (jeśli nie znasz przekierowań, możesz przyjrzeć się samouczkowi wprowadzenia do przekierowań powłoki bash):
$ okno dialogowe -CheckList „Wybierz elementy:” 0 0 0 \ 1 ”Wybór numer jeden„ Off \ 2 ”Wybór numer dwa” na \ 3 "Wybór numer trzy„ Off \ 4 "Choice Numer Four" na 2> Wybór.tekst
Gdy użytkownik potwierdzi swoje wybory, zostaną zapisane, oddzielone przestrzenią do wybór.tekst
plik.
Co jeśli chcemy przechowywać wybór bezpośrednio w zmienną? Aby wykonać zadanie, musimy użyć --Stdout
opcja, tak aby wyjście widżetu były wyświetlane stdin
zamiast Stderr
:
$ choices = "$ (okno dialogowe --stdout -checkList" Wybierz elementy: "0 0 0 \ 1" Wybór numer jeden „Off \ 2" Choice Numer dwa „Wybór numer trzy„ Off \ 4 ”numer wyboru cztery „na)”
W powyższym przykładzie wynik przetwarzania widżetu będzie dostępny za pośrednictwem wybory
zmienny. Być może możemy chcieć się nad nimi zapętać:
$ dla wyboru w $ wyborach; echo "$ Choice"; Zrobione 2 4
Aby zarządzać procesem tak nie
widżet, musimy zachowywać się inaczej. Widget, jak już widzieliśmy, nie wytwarza żadnego wyjścia, ale zmienia kod wyjściowy polecenia używanego do niechęci do jego odpowiednim wyboru użytkownika. Jeśli użytkownik potwierdza i odpowiedzi potwierdzają pytanie, kod wyjścia jest ustawiony 0
, inaczej do 1
(To może wydawać się dziwne, ale pamiętaj o tym 0
oznacza OK
chwila 1
jest statusem wyjścia, który oznacza, że polecenie nie było powotki). Wiedząc o tym, możemy napisać coś w stylu:
Jeśli okno dialogowe--yesno „Czy chcesz otworzyć instancję gnome-terminal ?"0 0; następnie wyczyść gnome-końcowe fi
Wnioski
W tym samouczku widzieliśmy, jak możemy użyć dialog
aplikacja do użycia ncurses
Widżet w skorupach. Najpierw widzieliśmy kilka typowych opcji, które można używać niezależnie od typu widżetu, niż spojrzeliśmy na niektóre widżety. Istnieje wiele innych widżetów, które można użyć dialog
: Pełna lista sugeruję, abyś rzucił okiem na podręcznik aplikacji.
Powiązane samouczki Linux:
- Rzeczy do zainstalowania na Ubuntu 20.04
- Jak zintegrować okno dialogowe z skorupami z Whiptail
- Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
- Pierwsze kroki z tkinter na samouczek Python
- Zagnieżdżone pętle w skryptach Bash
- Rzeczy do zainstalowania na Ubuntu 22.04
- Polecenia Linux: Top 20 najważniejsze polecenia, które musisz…
- Rzeczy do zrobienia po zainstalowaniu Ubuntu 22.04 JAMMY Jellyfish…
- Podstawowe polecenia Linux
- Zainstaluj Arch Linux na stacji roboczej VMware
- « WPROWADZENIE DO PYTHON WEWET SKRAPING I Piękna Biblioteka Zupów
- Kali Linux - Nie udało się pobierać poprawki repozytorium »