Bash-Skripte · 4 min read · Nov 10, 2025

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 in unseren Skripten eine grafische Benutzeroberfläche (GUI) anzeigen, um die Interaktion mit den Benutzern zu erleichtern. GUI macht jedes Skript benutzerfreundlicher und schöner.

Für GTK in Shell-Skripten gibt es viele Optionen und Tools, die in Linux verfügbar sind.

In diesem Artikel zeigen wir Ihnen, wie Sie Zenity verwenden, um GUI-Dialoge in Bash-Skripten anzuzeigen.

Zenity ist eine Open-Source-Anwendung zur Anzeige einfacher GUIs in Shell-Skripten. Es macht Skripte benutzerfreundlicher, indem es GTK+-Dialoge anzeigt. Zenity ist ein praktisches Befehlszeilenwerkzeug 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 Teil des GNOME-Desktops und 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 dem Befehl Apt, dnf oder pacman installieren.

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 Optionen von Zenity

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

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

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

Nicht nur das, Sie können Breite und Höhe für das Zenity-Dialogfeld festlegen, indem Sie die Optionen –width und –height im Zenity-Befehl setzen.

Mit der –timeout-Option können Sie eine Zeitüberschreitung für den Dialog festlegen, nach der das Dialogfeld automatisch geschlossen wird.

Zenity-Message-Box

Sie können einige grundlegende und schöne GUI-Nachrichtendialoge mit einem einfachen Zenity-Befehl aus dem Terminal erstellen.

Vier Arten von Nachrichtendialogen sind in Zenity verfügbar.

  • Information
  • 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 verfügbar." --width=500

Anzeige des Informationsdialogfelds mit Bash-Skript

2. Ein Fehlerdialogfeld

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

zenity --error --text="Fehler bei der Installation" --title="Fehler" --width=500 --width=200

Fehlerdialog mit Bash-Skript anzeigen

3. Ein Frage-Dialogfeld

Sie können ganz einfach eine Ja-oder-Nein-Frage stellen, indem Sie den folgenden Befehl ausführen:

zenity --question --text="Möchten Sie den PC neu starten?" --width=200

Dialogfelder in Bash
Sie können den Zenity-Fragedialog in einem Shell-Skript wie folgt verwenden:

#/bin/bash  
touch demo.txt  
if zenity --question --title="Löschen bestätigen" --text="Sind Sie sicher, dass Sie die Datei demo.txt löschen möchten?" --no-wrap  
    then  
    rm demo.txt  
    zenity --info --title="Erfolg" --text="demo.txt wurde entfernt" --no-wrap  
fi

4. Ein Warnungsdialogfeld

zenity --warning --title="Update verfügbar" --text="OS-Update erforderlich" --width=200

Bash zeigt Warnungsdialogfeld an

Benachrichtigung

Sie können eine Benachrichtigung mit Zenity anzeigen.

zenity --notification --text "Guten Morgen"

Zenity-Eingabefelder

Mit Zenity können Sie einfache Dialogfelder erstellen, die Eingaben vom Benutzer annehmen und als Standardausgabe anzeigen.

Hier sind einige Eingabefelder:

Kalender

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

zenity --calendar
Ausgabe:  
17/04/21

Kalendereingabe aus Bash-Skript

Text-Eingabedialog

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

zenity --entry --title "Benutzerinfo" --text "Bitte geben Sie Ihren Namen ein"

Listen-Dialog

Sie können die –list-Option verwenden, um einen mehrspaltigen Dialog zu erstellen. Hier müssen Sie Daten für die Spalte des Listendialogs spaltenweise, zeilenweise eingeben. Sie können Checkboxen oder Radioboxen mit dem Listen-Dialogfeld verwenden, wie unten gezeigt:

zenity --list  --title "Prozessor auswählen" --radiolist  --column "ID" --column="Name" 1 AMD 2 Intel

Listen-Dialogfeld

Sie können auch Checkboxen mit der –list-Option für mehrere Auswahlmöglichkeiten geben.

Checkbox-Optionen mit Bash

zenity --list --title "Pakete" --list  --text "Wählen Sie die Pakete aus, die Sie installieren möchten" --checklist --column "id"  --column "Name" 1 "Google Chrome" 2 "VLC" 3 "Firefox" 4 "GIMP"
Ausgabe  
Google Chrome|VLC|Firefox

Farbauswahl-Dialog

Sie können die –color-selection-Option verwenden, um den Benutzer nach einer Farbauswahl zu fragen.

zenity --color-selection --show-palette

Bash-Skript-Farbwähler

Dateiauswahl-Dialog

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

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

Öffnen Sie das Dateiauswahlfeld aus Bash

Fortschrittsdialog

Sie können mit der –progress-Option eine schöne Fortschrittsanzeige erstellen. Dies ist oft nützlich, wenn Sie dem Benutzer den Fortschritt Ihrer Anwendung oder Ihres Skripts anzeigen möchten.

Der folgende Befehl zeigt Ihnen die Download-Fortschrittsanzeige.

(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# Herunterladen bei \2\/s, ETA \3/' | zenity --progress --title="Datei herunterladen..." --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 und Zenity –help verwenden.

Fazit

In der obigen Anleitung haben Sie gelernt, wie Sie ein Bash-Skript schreiben können, um GUI-Dialoge mit Zenity anzuzeigen und Bash-Skripte benutzerfreundlicher zu gestalten. Zögern Sie nicht, mich zu fragen, wenn Sie Fragen haben.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.