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 --version

Si 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 zenity

Pour les systèmes basés sur RedHat :

dnf install zenity

Pour les systèmes basés sur Arch :

pacman -S zenity

Options 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

Afficher le texte d'information dans un dialogue en utilisant un script bash

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

Afficher une boîte de dialogue d'erreur en utilisant un script bash

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

Boîtes de dialogue dans bash
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  
fi

4. Une boîte de dialogue d’avertissement

zenity --warning --title="Mise à jour disponible" --text="Mise à jour du système d'exploitation requise" --width=200

Bash afficher une boîte de dialogue d'avertissement

Notification

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 --calendar
Sortie :  
17/04/21

Saisie de calendrier depuis un script bash

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

Boîte de dialogue de liste

Vous pouvez également donner une case à cocher avec l’option –list pour une sélection multiple.

Options de case à cocher avec bash

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|Firefox

Boî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-palette

Sélecteur de couleur de script bash

Boî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 "/"

Ouvrir la boîte de sélection de fichier depuis bash

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 --pulsate

Pour plus d’options de progression, exécutez la commande suivante dans le terminal

zenity --help-progress

Pour 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.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.