GNU/Linux >> Tutoriels Linux >  >> Linux

Comment afficher les boîtes de dialogue de l'interface graphique dans le script bash à l'aide de Zenity

Nous savons tous que les scripts bash Linux sont une véritable force de Linux. Souvent, nous voulons afficher une interface utilisateur graphique (GUI) dans nos scripts pour faciliter l'interaction avec les utilisateurs. L'interface graphique rend n'importe quel script plus convivial et plus beau.

Pour GTK dans les scripts shell, de nombreuses options et outils sont disponibles sous Linux.

Dans cet article, nous allons vous montrer comment utiliser Zenity pour afficher les boîtes de dialogue de l'interface graphique dans les scripts Bash.

Zenity est une application open source permettant d'afficher une interface graphique simple dans des scripts shell. Il rend les scripts plus conviviaux en affichant les boîtes de dialogue GTK+. Zenity est un outil de ligne de commande pratique pour les scripts shell modernes. Zenity est facile à utiliser et 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 Apt , npd ou pacman commande.

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

Certaines options générales peuvent être utilisées indépendamment avec Zenity. 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.

De plus, 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'expiration du dialogue, après la fermeture automatique de cette boîte de dialogue.

Boîte de message Zenity

Vous pouvez créer une boîte de dialogue de message graphique simple et agréable à l'aide d'une simple commande Zenity à partir du terminal.

Quatre types de boîte de dialogue de message disponibles dans Zenity.
 

  • Informations
  • Erreur
  • Question
  • Avertissement

1. Une boîte de dialogue d'informations

Vous pouvez créer une boîte de dialogue d'informations en exécutant la commande suivante dans le terminal :

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


2. Une boîte de dialogue d'erreur

Exécutez la commande suivante pour afficher la boîte de dialogue d'erreur

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


3. Une boîte de dialogue Question

Vous pouvez facilement demander Oui ou non en exécutant la commande suivante :

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


Vous pouvez utiliser Zenity Question Dialog dans un script shell comme ceci :

#/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. Une boîte de dialogue d'avertissement

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

Notification

Vous pouvez afficher la notification à l'aide de Zenity.

zenity --notification --text "Good Morning"

Boîtes de saisie Zenity

En utilisant Zenity, vous pouvez créer des boîtes de dialogue simples qui prennent les entrées de l'utilisateur et les affichent en tant que sortie standard.

Voici quelques champs de saisie :

Calendrier

Calendrier La boîte de dialogue affiche un calendrier et renvoie la date sélectionnée par l'utilisateur comme sortie standard.

zenity --calendar
Output:
17/04/21

Boîte de dialogue de saisie de texte

Vous pouvez utiliser l'option --entry pour créer une boîte de dialogue de saisie de texte. C'est très utile lorsque vous voulez demander à l'utilisateur de saisir du texte.

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

Boîte de dialogue Liste

Vous pouvez utiliser l'option --list pour créer une boîte de dialogue multi-colonnes. Ici, vous devez saisir les données pour la boîte de dialogue de liste colonne par colonne, ligne par ligne. Vous pouvez utiliser la case à cocher ou rediobox avec la boîte de dialogue de liste comme indiqué ci-dessous :

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

Vous pouvez également cocher la case avec l'option --list pour une sélection multiple.

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

Boîte de dialogue 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

Boîte de dialogue de sélection de fichier

Vous pouvez utiliser l'option --file-selection pour capturer les fichiers ou répertoires sélectionnés en tant que sortie standard. Vous pouvez également enregistrer le 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. Ceci est utile à de nombreuses reprises, lorsque vous souhaitez afficher la barre de progression de l'achèvement de votre application ou de votre script à l'utilisateur.

La commande ci-dessous vous montre 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# Downloading at \2\/s, ETA \3/' | zenity --progress --title="Downloading File..." --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 les boîtes de dialogue de l'interface graphique à l'aide de Zenity et rendre le script Bash plus convivial. N'hésitez pas à me demander si vous avez des questions.


Linux
  1. Comment déboguer un script bash ?

  2. Comment définir les paramètres lorsque Pipe Bash Script to Bash ?

  3. Comment appeler une fonction Bash dans le script Bash à l'intérieur d'Awk ?

  4. Comment passer des paramètres à un script Bash ?

  5. Comment remplacer les espaces dans les noms de fichiers à l'aide d'un script bash

Comment afficher les informations de processus à l'aide de Procs sous Linux

Comment afficher les feuilles de triche des commandes Linux en utilisant par exemple

Comment créer des boîtes de dialogue GUI dans des scripts Bash avec Zenity sous Linux et Unix

Comment créer des boîtes de dialogue GUI dans des scripts Bash avec Whiptail sous Linux

Comment afficher les informations sur le processeur Linux à l'aide de CPUFetch

Comment exécuter un script bash