Bash Scripting · 5 min read · Nov 10, 2025
Comment afficher des dialogues GUI dans un script bash en utilisant Zenity

Nous savons tous que les scripts bash Linux sont une véritable force de Linux. Souvent, nous voulons afficher une interface graphique (GUI) dans nos scripts pour faciliter l’interaction avec les utilisateurs. La GUI rend tout script plus convivial et beau.
Pour GTK dans les scripts shell, il existe de nombreuses options et outils disponibles sous Linux.
Dans cet article, nous allons vous montrer comment utiliser Zenity pour afficher des dialogues GUI dans des scripts Bash.
Zenity est une application open-source pour afficher une simple GUI dans des scripts shell. Elle rend les scripts plus conviviaux en affichant des dialogues GTK+. Zenity est un outil en ligne de commande pratique pour le scripting shell moderne. Zenity est facile à utiliser et est une application multiplateforme.
Prérequis
Un utilisateur sudo avec des privilèges root.
Installer Zenity
Zenity fait partie du bureau GNOME et, par défaut, il est installé sur la plupart des distributions Linux. Vous pouvez vérifier l’installation de Zenity sur votre système en exécutant la commande suivante dans le terminal.
zenity --versionSi Zenity n’est pas installé sur votre système, vous pouvez l’installer en utilisant la commande Apt, dnf ou pacman.
Pour les systèmes basés sur Ubuntu/Debian :
sudo apt-get install zenityPour les systèmes basés sur RedHat :
dnf install zenityPour les systèmes basés sur Arch :
pacman -S zenityOptions générales de Zenity
Il existe certaines options générales qui peuvent être utilisées avec Zenity de manière indépendante. Les options générales sont –title, –window-icon, –width, –height, –timeout.
Vous pouvez utiliser l’option —title pour spécifier un titre pour la fenêtre de dialogue.
Vous pouvez utiliser l’option –window-icon pour spécifier une icône qui sera utilisée comme icône pour la boîte de dialogue Zenity.
Non seulement cela, mais vous pouvez définir la largeur et la hauteur de la boîte de dialogue Zenity en définissant les options –width et –height dans la commande Zenity.
En utilisant l’option –timeout, vous pouvez définir un délai d’attente pour le dialogue, après quoi la boîte de dialogue se ferme automatiquement.
Boîte de message Zenity
Vous pouvez créer des dialogues de message GUI de base et agréables en utilisant une simple commande Zenity depuis le terminal.
Quatre types de dialogues de message sont disponibles dans Zenity.
- Information
- Erreur
- Question
- Avertissement
1. Une boîte de dialogue d’information
Vous pouvez créer une boîte de dialogue d’information en exécutant la commande suivante dans le terminal :
zenity --info --text="Mise à jour du logiciel disponible." --width=500
2. Une boîte de dialogue d’erreur
Exécutez la commande suivante pour afficher une boîte de dialogue d’erreur
zenity --error --text="Erreur d'installation" --title="Erreur" --width=500 --height=200
3. Une boîte de dialogue de question
Vous pouvez facilement poser une question de type Oui ou Non en exécutant la commande suivante :
zenity --question --text="Voulez-vous redémarrer le PC ?" --width=200
Vous pouvez utiliser la boîte de dialogue de question Zenity dans un script shell comme ceci :
#/bin/bash
touch demo.txt
if zenity --question --title="Confirmer la suppression" --text="Êtes-vous sûr de vouloir supprimer le fichier demo.txt ?" --no-wrap
then
rm demo.txt
zenity --info --title="Succès" --text="demo.text a été supprimé" --no-wrap
fi4. Une boîte de dialogue d’avertissement
zenity --warning --title="Mise à jour disponible" --text="Mise à jour du système d'exploitation requise" --width=200Notification
Vous pouvez afficher une notification en utilisant Zenity.
zenity --notification --text "Bonjour"Boîtes de saisie Zenity
En utilisant Zenity, vous pouvez créer des boîtes de dialogue simples qui prennent des entrées de l’utilisateur et les affichent en sortie standard.
Voici quelques boîtes de saisie :
Calendrier
La boîte de dialogue Calendrier affiche un calendrier et renvoie la date sélectionnée par l’utilisateur en sortie standard.
zenity --calendarSortie :
17/04/21
Boîte de saisie de texte
Vous pouvez utiliser l’option –entry pour créer une boîte de saisie de texte. C’est très utile lorsque vous souhaitez demander à l’utilisateur d’entrer du texte.
zenity --entry --title "Infos utilisateur" --text "Veuillez entrer votre nom"Boîte de dialogue de liste
Vous pouvez utiliser l’option –list pour créer un dialogue à plusieurs colonnes. Ici, vous devez entrer les données pour la colonne de dialogue liste colonne par colonne, ligne par ligne. Vous pouvez utiliser une case à cocher ou un bouton radio avec la boîte de dialogue de liste comme indiqué ci-dessous :
zenity --list --title "Choisir un processeur" --radiolist --column "ID" --column="Nom" 1 AMD 2 Intel
Vous pouvez également donner une case à cocher avec l’option –list pour une sélection multiple.

zenity --list --title "Paquets" --text "sélectionnez les paquets que vous souhaitez installer" --checklist --column "id" --column "Nom" 1 "Google Chrome" 2 "VLC" 3 "Firefox" 4 "GIMP"Sortie
Google Chrome|VLC|FirefoxBoîte de sélection de couleur
Vous pouvez utiliser l’option –color-selection pour prendre la valeur de sélection de couleur de l’utilisateur.
zenity --color-selection --show-paletteBoîte de sélection de fichier
Vous pouvez utiliser l’option –file-selection pour capturer les fichiers ou répertoires sélectionnés en sortie standard. Vous pouvez également enregistrer un fichier en utilisant l’option –file-selection.
zenity --file-selection --multiple --filename "/"
Boîte de dialogue de progression
Vous pouvez créer une belle barre de progression en utilisant l’option –progress. Cela est utile de nombreuses fois, lorsque vous souhaitez montrer à l’utilisateur la barre de progression de l’achèvement de votre application ou script.
La commande ci-dessous vous montrera la barre de progression du téléchargement.
(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# Téléchargement à \2\/s, ETA \3/' | zenity --progress --title="Téléchargement du fichier..." --percentage=1 --pulsatePour plus d’options de progression, exécutez la commande suivante dans le terminal
zenity --help-progressPour plus d’options Zenity, vous pouvez utiliser man Zenity et Zenity –help.
Conclusion
Dans le guide ci-dessus, vous avez appris comment écrire un script bash pour afficher des dialogues GUI en utilisant Zenity et rendre le script Bash plus convivial. N’hésitez pas à me poser des questions si vous en avez.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.

