Website-Suche

Zenity – Erstellt grafische (GTK+) Dialogfelder in Befehlszeilen- und Shell-Skripten


GNU Linux, das Betriebssystem, das auf einem sehr leistungsstarken Kernel namens Linux basiert. Linux ist berühmt für seine Befehlszeilenoperationen. Mit der Erfindung von Linux im Alltags- und Desktop-Computing ist Nix nicht mehr auf die Befehlszeile ausgerichtet, es ist gleichermaßen grafisch und die Entwicklung grafischer Anwendungen ist keine schwierige Aufgabe mehr.

Hier in diesem Artikel besprechen wir die Erstellung und Ausführung eines einfachen grafischen Dialogfelds mit der GTK+-Anwendung namens „Zenity“.

Was ist Zenity?

Zenity ist eine Open-Source- und plattformübergreifende Anwendung, die GTK+-Dialogfelder in der Befehlszeile und mithilfe von Shell-Skripten anzeigt. Es ermöglicht das Abfragen und Präsentieren von Informationen zur/von der Shell in grafischen Boxen. Mit der Anwendung können Sie grafische Dialogfelder in der Befehlszeile erstellen und die Interaktion zwischen Benutzer und Shell sehr einfach gestalten.

Es gibt andere Alternativen, aber nichts ist vergleichbar mit der Einfachheit von Zenity, insbesondere wenn Sie keine komplexe Programmierung benötigen. Zenity, ein Werkzeug, das Sie unbedingt in der Hand haben müssen.

Zenity-Funktionen

  1. FOSS-Software
  2. Plattformübergreifende Anwendung
  3. Ausführung des GTK+-Dialogfelds zulassen
  4. Befehlszeilentool
  5. Unterstützung beim Shell-Scripting

Nützlichkeit

  1. Einfache GUI-Erstellung
  2. Weniger Funktionen als andere komplexe Tools
  3. Ermöglicht Shell-Skripten die Interaktion mit GUI-Benutzern
  4. Zur grafischen Benutzerinteraktion ist eine einfache Dialogerstellung möglich

Da Zenity für alle bekannten Hauptplattformen verfügbar ist und auf der GTK+-Bibliothek basiert, kann das Zenity-Programm auf/von einer anderen Plattform portiert werden.

Installation von Zenity unter Linux

Zentity ist bei den meisten heutigen Standard-Linux-Distributionen standardmäßig installiert oder im Repository verfügbar. Sie können überprüfen, ob es auf Ihrem Computer installiert ist oder nicht, indem Sie die folgenden Befehle ausführen.

ravisaive@tecmint:~$ zenity --version 

3.8.0
ravisaive@tecmint:~$ whereis zenity 

zenity: /usr/bin/zenity /usr/bin/X11/zenity /usr/share/zenity /usr/share/man/man1/zenity.1.gz

Wenn es nicht installiert ist, können Sie es mit den Befehlen Apt oder Yum installieren, wie unten gezeigt.

ravisaive@tecmint:~$ sudo apt-get install zenity		[on Debian based systems]

root@tecmint:~# yum install zenity				[on RedHat based systems]

Darüber hinaus können Sie es auch aus den Quelldateien erstellen und das neueste Zenity-Quellpaket (d. h. aktuelle Version 3.8) über den folgenden Link herunterladen.

  1. http://ftp.gnome.org/pub/gnome/sources/zenity/

Zenity Basic-Dialogfelder

Einige der grundlegenden Dialoge von Zenity, die direkt über die Befehlszeile aufgerufen werden können.

1. Wie wäre es mit einem kurzen Kalenderdialog?
root@tecmint:~# zenity --calendar

2. Ein Fehlerdialogfeld
root@tecmint:~# zenity --error

3. Ein allgemeines Texteingabe-Dialogfeld
root@tecmint:~# zenity --entry

4. Ein Informationsdialog
root@tecmint:~# zenity --info

5. Ein Fragedialogfeld
root@tecmint:~# zenity --question

6. Ein Fortschrittsbalken
root@tecmint:~# zenity --progress

7. Skalierungsdialog
root@tecmint:~# zenity --scale

8. Ein Passwortdialog
root@tecmint:~# zenity --password

9. Ein Formulardialogfeld
root@tecmint:~# zenity --forms

10. Ein Thema zum Thema Dialog
root@tecmint:~# zenity --about

Dialogfeld „Shell-Skript erstellen“.

Jetzt würden wir hier die Erstellung von Zenity Dialog mit einfachen Shell-Skripten besprechen. Wir können zwar einen einzelnen Dialog erstellen, indem wir Zenity-Befehle direkt aus der Shell ausführen (wie oben), aber dann können wir nicht zwei Dialogboxen verknüpfen, um ein aussagekräftiges Ergebnis zu erhalten.

Wie wäre es mit einem interaktiven Dialogfeld, das Ihre Eingaben entgegennimmt und das Ergebnis anzeigt?

#!/bin/bash 
first=$(zenity --title="Your's First Name" --text "What is your first name?" --entry) 
zenity --info --title="Welcome" --text="Mr./Ms. $first" 
last=$(zenity --title="Your's Last Name" --text "$first what is your last name?" --entry) 
zenity --info --title="Nice Meeting You" --text="Mr./Ms. $first $last"

Speichern Sie es (konventionell) unter „anything.sh“ und vergessen Sie nicht, es ausführbar zu machen. Legen Sie die Berechtigung 755 für die Datei anything.sh fest und führen Sie das Skript aus.

root@tecmint:~# chmod 755 anything.sh 
root@tecmint:~# sh anything.sh

Informationen zur Skriptbeschreibung

Der konventionelle Schebang, auch bekannt als Hashbang

#!/bin/bash

In der folgenden Zeile ist „first“ eine Variable und der Wert der Variablen wird zur Laufzeit generiert.

    1. –entry“ bedeutet, dass Zenity aufgefordert wird, ein Texteingabefeld zu generieren.
    2. – title=“ definiert den Titel des generierten Textfelds.
    3. —text=“ definiert den Text, der im Texteingabefeld verfügbar ist.
first=$(zenity --title="Your's First Name" --text "What is your first name?" --entry)

Diese Zeile der folgenden Skriptdatei dient zur Generierung des Informationsdialogfelds (–info) mit dem Titel „Willkommen“ und dem Text „Herr/Frau zuerst“.

zenity --info --title="Welcome" --text="Mr./Ms. $first"

Diese Zeile des Skripts ähnelt Zeile Nummer zwei des Skripts, außer dass hier eine neue Variable „last“ definiert wird.

last=$(zenity --title="Your's Last Name" --text "$first what is your last name?" --entry)

Diese letzte Zeile des Skripts ähnelt wiederum der dritten Zeile des Skripts und generiert ein Informationsdialogfeld, das sowohl die Variablen „$first“ als auch „$last“ enthält.

zenity --info --title="Nice Meeting You" --text="Mr./Ms. $first $last"

Weitere Informationen zum Erstellen benutzerdefinierter Dialogfelder mithilfe von Shell-Skripten finden Sie auf der folgenden Referenzseite Zenity.

  1. https://help.gnome.org/users/zenity/stable/

Im nächsten Artikel werden wir Zenity mit mehr Shell-Skripten für die GUI-Benutzerinteraktion integrieren. Bleiben Sie bis dahin auf dem Laufenden und bleiben Sie mit Tecmint in Verbindung. Vergessen Sie nicht, Ihr wertvolles Feedback im Kommentarbereich abzugeben.