GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So zeigen Sie GUI-Dialoge in Bash-Skripten mit Zenity an

Wir alle wissen, dass Linux-Bash-Skripte eine echte Stärke von Linux sind. Oft möchten wir eine grafische Benutzeroberfläche (GUI) in unseren Skripten anzeigen, um die Interaktion mit Benutzern zu vereinfachen. GUI macht jedes Skript benutzerfreundlicher und schöner.

Für GTK in Shell-Skripten stehen unter Linux viele Optionen und Tools zur Verfügung.

In diesem Artikel zeigen wir Ihnen, wie Sie mit Zenity GUI-Dialoge in Bash-Skripten anzeigen können.

Zenity ist eine Open-Source-Anwendung zum Anzeigen einfacher GUI in Shell-Skripten. Es macht Skripte benutzerfreundlicher, indem es GTK+-Dialoge anzeigt. Zenity ist ein praktisches Befehlszeilentool für modernes Shell-Scripting. Zenity ist einfach zu bedienen und eine plattformübergreifende Anwendung.

Voraussetzungen

Ein sudo-Benutzer mit Root-Rechten.

Zenity installieren

Zenity ist ein Teil des GNOME-Desktops und wird standardmäßig auf den meisten Linux-Distributionen installiert. Sie können die Zenity-Installation auf Ihrem System überprüfen, indem Sie den folgenden Befehl im Terminal ausführen.

zenity --version


Wenn Zenity nicht auf Ihrem System installiert ist, können Sie es mit Apt installieren , dnf oder pacman Befehl.

Für Ubuntu/Debian-basierte Systeme:

sudo apt-get install zenity

Für RedHat-basierte Systeme:

dnf install zenity

Für Arch-basierte Systeme:

pacman -S zenity

Allgemeine Zenity-Optionen

Es gibt einige allgemeine Optionen, die unabhängig voneinander mit Zenity verwendet werden können. Allgemeine Optionen sind --title, --window-icon, --width, --height, --timeout

Sie können die Option ---title  verwenden, um einen Titel für das Dialogfenster anzugeben.

Sie können die Option --window-icon verwenden, um ein Symbol anzugeben, das als Symbol für das Zenity-Dialogfeld verwendet wird.

Darüber hinaus können Sie Breite und Höhe für das Zenity-Dialogfeld festlegen, indem Sie die Optionen --width und --height im Zenity-Befehl festlegen.

Mit der Option --timeout können Sie eine Zeitüberschreitung des Dialogs festlegen, nach der das Dialogfeld automatisch geschlossen wird.

Zenity-Nachrichtenbox

Sie können einen einfachen und netten GUI-Nachrichtendialog mit einem einfachen Zenity-Befehl vom Terminal aus erstellen.

Vier Arten von Nachrichtendialogfeldern sind in Zenity verfügbar.
 

  • Informationen
  • Fehler
  • Frage
  • Warnung

1. Ein Informationsdialogfeld

Sie können ein Informationsdialogfeld erstellen, indem Sie den folgenden Befehl im Terminal ausführen:

zenity --info --text="Software Update Available." --width=500


2. Ein Fehlerdialogfeld

Führen Sie den folgenden Befehl aus, um das Fehlerdialogfeld anzuzeigen

zenity --error --text="Error In Installation" --title="Error" --width=500 --width=200


3. Ein Fragedialogfeld

Sie können einfach ohne Frage nach Ja fragen, indem Sie den folgenden Befehl ausführen:

zenity --question --text="Do you want to reboot pc?" --width=200


Sie können den Zenity Question Dialog in einem Shell-Skript wie folgt verwenden:

#/bin/bash
touch demo.txt
if zenity --question --title="Confirm deletion" --text="Are you sure you want to demo.txt file?" --no-wrap
    then
    rm demo.txt
    zenity --info --title="Success" --text="demo.text was removed" --no-wrap
fi

4. Ein Warndialogfeld

zenity --warning --title="Update Available" --text="OS Update required" --width=200

Benachrichtigung

Sie können Benachrichtigungen mit Zenity anzeigen.

zenity --notification --text "Good Morning"

Zenity-Eingabefelder

Mit Zenity können Sie einfache Dialogfelder erstellen, die Benutzereingaben entgegennehmen und als Standardausgabe anzeigen.

Hier sind einige Eingabefelder:

Kalender

Kalender Das Dialogfeld zeigt einen Kalender an und gibt das vom Benutzer ausgewählte Datum als Standardausgabe zurück.

zenity --calendar
Output:
17/04/21

Texteingabedialog

Sie können die Option --entry verwenden, um einen Texteingabedialog zu erstellen. Es ist sehr nützlich, wenn Sie den Benutzer bitten möchten, Text einzugeben.

zenity --entry --title "User Info" --text "Please enter your name"

Listendialog

Sie können die Option --list verwenden, um einen mehrspaltigen Dialog zu erstellen. Hier müssen Sie Daten für den Listendialog Spalte für Spalte, Zeile für Zeile eingeben. Sie können Checkbox oder Rediobox mit Listendialogfeld wie unten gezeigt verwenden:

zenity --list  --title "Choose Processor" --radiolist  --column "ID" --column="Name" 1 AMD 2 Intel

Sie können auch ein Kontrollkästchen mit der Option --list für die Mehrfachauswahl angeben.

zenity --list --title "Packages" --list  --text "select packages you want to install" --checklist --column "id"  --column "Name" 1 "Google Chrome" 2 "VLC" 3 "Firefox" 4 "GIMP"
Output
Google Chrome|VLC|Firefox

Farbauswahldialog

Sie können die Option --color-selection verwenden, um den Farbauswahlwert vom Benutzer zu übernehmen.

zenity --color-selection --show-palette

Dateiauswahldialog

Sie können die Option --file-selection verwenden, um ausgewählte Dateien oder Verzeichnisse als Standardausgabe zu erfassen. Sie können die Datei auch mit der Option --file-selection speichern.

zenity --file-selection --multiple --filename "/"

Fortschrittsdialog

Mit der Option --progress können Sie einen schönen Fortschrittsbalken erstellen. Dies ist oft nützlich, wenn Sie dem Benutzer den Fortschrittsbalken Ihrer Anwendung oder des Skriptabschlusses anzeigen möchten.

Below command with show you download progress bar.

(wget -r  --no-parent patch -A.tar.gz http://157.245.99.119/latest/ -P /tmp 2>&1 ) | sed -u 's/.* \([0-9]\+%\)\ \+\([0-9.]\+.\) \(.*\)/\1\n# Downloading at \2\/s, ETA \3/' | zenity --progress --title="Downloading File..." --percentage=1 --pulsate

Für weitere Fortschrittsoptionen führen Sie den folgenden Befehl im Terminal

aus
zenity --help-progress

Für weitere Zenity-Optionen können Sie man Zenity verwenden und Zenity --help .

Schlussfolgerung

In der obigen Anleitung haben Sie gelernt, wie Sie ein Bash-Skript schreiben können, um GUI-Dialoge mit Zenity anzuzeigen und das Bash-Skript benutzerfreundlicher zu gestalten. Fühlen Sie sich frei, mich zu fragen, wenn Sie irgendwelche Fragen haben.


Linux
  1. Wie debuggt man ein Bash-Skript?

  2. So teilen Sie eine Zeichenfolge in Bash-Skript auf

  3. So ersetzen Sie Leerzeichen in Dateinamen mit einem Bash-Skript

  4. So zeigen Sie nur verschiedene Zeilen mit diff (bash) an

  5. Wie überprüfe ich den Internetzugang mit Bash-Skript in Linux?

So zeigen Sie Prozessinformationen mit Procs unter Linux an

So zeigen Sie Cheatsheets für Linux-Befehle mit z

So erstellen Sie GUI-Dialogfelder in Bash-Skripten mit Zenity in Linux und Unix

So erstellen Sie GUI-Dialogfelder in Bash-Skripten mit Whiptail in Linux

So zeigen Sie Linux-CPU-Informationen mit CPUFetch an

So führen Sie ein Bash-Skript aus