Ich schreibe ein paar kleine Bash-Skripte unter Ubuntu Linux. Ich möchte sie über die GUI ausführen können, ohne dass ein Terminalfenster erforderlich ist, um Eingaben einzugeben oder Ausgaben anzuzeigen.
Bisher ist nur ein Passwort für sudo erforderlich - und gksudo erledigt das in Ordnung. Ich habe jedoch noch keine einfache Möglichkeit gefunden, ein Meldungsfeld anzuzeigen. Gibt es eine Art 'gkmessage'-Befehl? Ich würde etwas bevorzugen, das in einer Standard-Ubuntu-Installation vorhanden ist, aber es macht mir nichts aus, wenn nötig ein neues Paket zu installieren.
Antworten:
Ich glaube, Zenity wird tun, was Sie wollen. Es wurde speziell für die Anzeige von GTK-Dialogen über die Befehlszeile entwickelt und ist als Ubuntu-Paket verfügbar .
quelle
zenity --help
ist nicht so hilfreich. Um dies nützlich zu machen, müssen Sie sicherstellen, dass Sie festlegen--text=My text here
, dass etwas angezeigt wird ...zenity --info --text="Calculation complete"
zenity --help-all
..xinitrc
beim Starten meinesxorg
Servers Warnungen oder Fehler in meinem anzuzeigen . Andernfalls wären die Fehler transparent. Ich ziehe dies auchzenity
vor,kdialog
da KDE noch nicht gestartet wurde und GTK-Bibliotheken leichter sind.Wenn Sie
Ubuntuviele Distributionen verwenden, wirft dernotify-send
Befehl eine dieser netten verderblichen Benachrichtigungen in die obere rechte Ecke. Wie so:notify-send "My name is bash and I rock da house"
Wunderschönen!
quelle
libnotify-bin
enthält das Paket dienotify-send
Binärdatei. Gnome3 scheint nicht erforderlich zu sein,notify-osd
aber ich denke, andere Desktop-Umgebungen erfordern dies möglicherweise zusätzlich zulibnotify-bin
Jeder erwähnt Zenity, es scheint viele andere zu geben. Eine durcheinandergebrachte, aber interessante Liste finden Sie unter http://alternativeto.net/software/zenity/
Zunächst ein Beispiel für Zenity mit Textformatierungs-Markup, Fenstertitel und Schaltflächenbeschriftung.
gxmessage
xmessage
xmessage
ist sehr alt, daher ist es stabil und wahrscheinlich in allen Distributionen verfügbar, die X verwenden (da es mit X verteilt wird). Es kann über X-Ressourcen angepasst werden, für diejenigen, die Linux oder Unix lange genug verwendet haben, um zu wissen, was es bedeutet (.Xdefaults
jemand?).kdialog
(nicht getestet)
In einem PPA
YAD: Zenity On Steroids [Grafische Dialoge aus Shell-Skripten anzeigen] ~ Web Upd8: Ubuntu / Linux-Blog . Scheint Dialoge nicht automatisch zu dimensionieren.
Ein größeres Beispiel
Andere nicht in Ubuntu-Standard-Repositorys
Off-Topic (für Terminal)
Fühlen Sie sich frei zu bearbeiten.
quelle
--infobox
hat einen langjährigen Anzeigefehler mit xterm (Gnome-Terminal)whiptail --infobox
(was auf Terminals, die einen alternativen Bildschirm unterstützen, nicht ordnungsgemäß funktioniert) zurückgegeben wird, ohne auf Benutzereingaben zu warten, währendwhiptail --msgbox
(was funktioniert) vor dem Beenden auf die Bestätigung durch den Benutzer wartet.Die Zenity- Anwendung scheint genau das zu sein, wonach Sie suchen.
Um Eingaben von zenity zu übernehmen , können Sie eine Variable angeben und die Ausgabe von zenity --entry darin speichern. Es sieht ungefähr so aus:
Wenn Sie sich jetzt den Wert in my_variable ansehen , ist dies alles, was im Zenity-Popup-Eingabedialog eingegeben wurde.
Wenn Sie eine Aufforderung geben möchten, was der Benutzer (oder Sie) in das Dialogfeld eingeben soll, fügen Sie den Schalter --text mit der gewünschten Bezeichnung hinzu. Es sieht ungefähr so aus:
Zenity bietet viele andere nützliche Optionen für bestimmte Aufgaben. Vielleicht möchten Sie diese auch mit zenity --help ausprobieren . Ein Beispiel ist die Option --calendar , mit der Sie ein Datum aus einem grafischen Kalender auswählen können.
Welches gibt ein schön formatiertes Datum basierend auf dem, was der Benutzer angeklickt hat:
gibt:
Es gibt auch Optionen für Schieberegler, Fehler, Listen usw.
Hoffe das hilft.
quelle
zentity
sieht cool aus. Es ist jedoch nicht Teil von Ubuntu 12.04, also habe ich michgxmessage
stattdessen dafür entschieden.Ich habe den Befehl xmessage gefunden , der irgendwie gut genug ist.
quelle
Hier ist ein kleines Tcl-Skript, das macht, was Sie wollen. Der Wish-Interpreter sollte standardmäßig unter Ubuntu installiert sein.
Nennen Sie es so:
quelle
alert
undnotify-send
scheinen das gleiche zu sein. ich benutzenotify-send
für nicht eingegebene Nachrichten, da es den Fokus nicht stiehlt und ich keinen Weg finde, Zenity usw. daran zu hindern.z.B
quelle
Es gibt auch
dialog
und die KDE-Versionkdialog
.dialog
wird von Slackware verwendet, sodass es auf anderen Distributionen möglicherweise nicht sofort verfügbar ist.quelle
wenn nichts anderes vorhanden ist. Sie können ein xterm starten und es wie folgt wiedergeben:
quelle
Wie wäre es mit Ubuntus Alarm . Es kann nach jedem Vorgang verwendet werden, um den Abschluss zu warnen und sogar das Symbol des roten Kreuzes anzuzeigen, wenn der Vorgang mit Fehlern abgeschlossen wurde
quelle
Zenity ist wirklich genau das Werkzeug, nach dem Sie suchen.
oder
quelle
Kdialog und Dialog sind beide gut, aber ich würde Zenity empfehlen. Schnell, einfach und viel besser aussehend die xmessage oder den Dialog.
quelle
Beispiel für ein Bash-Skript zur Verwendung von Gambas GTK / QT-Steuerelementen (GUI-Objekten): Mit der Gambas-IDE können auch große GUIs entworfen und als GUI-Server fungiert werden. Beispielanwendungen können aus dem Gambas App Store heruntergeladen werden.
https://gambas.one/gambasfarm/?id=823&action=search
quelle