Piszę kilka małych skryptów basha pod Linuksem Ubuntu. Chcę móc je uruchamiać z GUI bez potrzeby okna terminala, aby wprowadzić jakiekolwiek dane wejściowe lub wyświetlić dane wyjściowe.
Jak dotąd jedyne wymagane dane wejściowe to hasło do sudo - i gksudo radzi sobie z tym dobrze. Ale nie znalazłem jeszcze prostego sposobu na wyświetlenie okna komunikatu. Czy jest dostępne jakieś polecenie „gkmessage”? Wolałbym coś obecnego w domyślnej instalacji Ubuntu, ale nie mam nic przeciwko zainstalowaniu nowego pakietu, jeśli to konieczne.
Odpowiedzi:
Wierzę, że Zenity zrobi, co chcesz. Jest specjalnie zaprojektowany do wyświetlania okien dialogowych GTK z wiersza poleceń i jest dostępny jako pakiet Ubuntu .
źródło
zenity --help
nie jest tak pomocne. Aby było to przydatne, musisz upewnić się, że ustawiłeś,--text=My text here
aby coś wyświetlało ...zenity --info --text="Calculation complete"
zenity --help-all
..xinitrc
podczas uruchamianiaxorg
serwera. W przeciwnym razie błędy byłyby przejrzyste. Wolę też to odzenity
nowa,kdialog
ponieważ KDE jeszcze się nie uruchomił, a biblioteki GTK są lżejsze.Jeśli używasz wielu dystrybucji
Ubuntu,notify-send
polecenie wyrzuci jedno z tych ładnych, łatwo psujących się powiadomień w prawym górnym rogu. Tak jak to:notify-send "My name is bash and I rock da house"
Piękny!
źródło
libnotify-bin
pakiet zawieranotify-send
plik binarny. Wydaje się, że Gnome3 nie wymaga,notify-osd
ale myślę, że inne środowiska graficzne mogą tego wymagaćlibnotify-bin
Wszyscy wspominają o zenity, wydaje się, że jest wiele innych. Pomieszana, ale interesująca lista znajduje się pod adresem http://alternativeto.net/software/zenity/
Najpierw przykład zenity ze znacznikami formatowania tekstu, tytułem okna, etykietą przycisku.
gxmessage
xmessage
xmessage
jest bardzo stary, więc jest stabilny i prawdopodobnie dostępny we wszystkich dystrybucjach używających X (ponieważ jest dystrybuowany z X). Można go dostosować za pomocą zasobów X, dla tych, którzy używają Linuksa lub Uniksa wystarczająco długo, aby wiedzieć, co to znaczy (.Xdefaults
ktoś?).kdialog
(nie testowany)
W umowie PPA
YAD: Zenity On Steroids [Wyświetlaj graficzne dialogi ze skryptów powłoki] ~ Aktualizacja sieciowa8: Blog Ubuntu / Linux . Nie wydaje się, aby okna dialogowe były automatycznie zmieniane.
Większy przykład
Inne nie znajdują się w standardowych repozytoriach Ubuntu
Nie na temat (dla terminala)
Zapraszam do edycji.
źródło
--infobox
ma długotrwały błąd wyświetlania w xterm (gnome-terminal)whiptail --infobox
(co nie działa poprawnie na terminalach obsługujących alternatywny ekran) wraca bez czekania na wejście użytkownika, podczas gdywhiptail --msgbox
(co działa) czeka na potwierdzenie użytkownika przed wyjściem.W zenity pojawi się aplikacja, czego szukasz.
Aby pobrać dane wejściowe z zenity , możesz określić zmienną i zapisać do niej wynik zenity --entry . Wygląda mniej więcej tak:
Jeśli spojrzysz na wartość w my_variable , będzie to wszystko, co zostało wpisane w wyskakującym oknie dialogowym zenity.
Jeśli chcesz podpowiedzieć, co użytkownik (lub Ty) powinien wprowadzić w oknie dialogowym, dodaj przełącznik --text z żądaną etykietą. Wygląda mniej więcej tak:
Zenity ma wiele innych fajnych opcji, które są przeznaczone do określonych zadań, więc możesz je również sprawdzić za pomocą zenity --help . Jednym z przykładów jest opcja --calendar , która pozwala wybrać datę z kalendarza graficznego.
Co daje ładnie sformatowaną datę na podstawie tego, co kliknął użytkownik:
daje:
Istnieją również opcje selektorów suwaków, błędów, list i tak dalej.
Mam nadzieję że to pomoże.
źródło
zentity
że wygląda fajnie. Jednak nie jest to część Ubuntu 12.04, więcgxmessage
zamiast tego wybrałem .Znalazłem polecenie xmessage , które jest dość dobre.
źródło
Oto mały skrypt Tcl, który zrobi, co chcesz. Interpreter Wish powinien być domyślnie zainstalowany w systemie Ubuntu.
Nazwij to tak:
źródło
alert
inotify-send
wydaje się być tym samym. używamnotify-send
do wiadomości bez wprowadzania danych, ponieważ nie kradną one uwagi i nie mogę znaleźć sposobu, aby powstrzymać zenity itp. Przed zrobieniem tego.na przykład
źródło
Jest też
dialog
i wersja KDEkdialog
.dialog
jest używany przez slackware, więc może nie być natychmiast dostępny w innych dystrybucjach.źródło
jeśli nic innego nie jest obecne. możesz uruchomić xterm i wywołać w nim echo, na przykład:
źródło
A co z ostrzeżeniem Ubuntu . Może być używany po każdej operacji, aby ostrzec ją o zakończeniu, a nawet wyświetlić ikonę czerwonego krzyża, jeśli operacja została zakończona z błędami
źródło
Zenity to naprawdę dokładne narzędzie, którego myślę, że szukasz.
lub
źródło
Kdialog i dialog są dobre, ale polecam Zenity. Szybki, łatwy i znacznie lepiej wyglądający xmessage lub dialog.
źródło
Przykładowy skrypt bash do używania kontrolek Gambas GTK / QT (obiekty GUI): Gambas IDE może być używany do projektowania nawet dużych GUI i działać jako serwer GUI. Przykładowe wyjaśnienia można pobrać ze sklepu Gambas App Store.
https://gambas.one/gambasfarm/?id=823&action=search
źródło