Zenity
Un script est composé d’un fichier texte contenant une suite d’ordres shell et qu’on rend exécutable avec la commande «chmod a+x fichier».
Le shell est un interpréteur de commandes, il permet de dialoguer avec le système, il est possible de piloter entièrement linux avec la ligne de commande, et permet d’avoir une totale maîtrise du système.
Le shell bash peut être considéré comme un langage interprété car au-delà d’un enchaînement de commandes on peut lui adjoindre des variables ainsi que des boucles et des structures de contrôle.
Aucune installation ni compilation n'est nécessaire pour faire des scripts.
Il est donc très efficace de réaliser quelques scripts simples pour automatiser certaines tâches.
Zenity génère des boites de dialogue graphiques GTK à utiliser au cours de l’exécution de scripts shell et qui permettent les interactions de l’utilisateur.
Le script peut ensuite être invoqué en tapant son nom dans un terminal comme n’importe quelle commande.
En résumé, zenity + bash permettent de créer de petits programmes facilement avec une interface graphique.
Boites de messages
zenity --info --text "Toutes les mises à jour sont complètes."
zenity --warning --text "Êtes-vous sûr de vouloir continuer ?"
zenity --error --text "Une erreur est survenue."
Question
zenity --question --text "Le fichier existe déjà \nVoulez-vous continuer ?"
On trouve le code de retour dans la variable bash $?
0 si <oui> 1 si <non>
Exemple :
if zenity --question --text "Le fichier existe déjà \nVoulez-vous continuer ?" then echo "oui, on procède au traitement" else echo "non, abandon" fi |
Sélection de fichiers
zenity --file-selection choisir un fichier
zenity --file-selection --directory choisir un dossier
fichier=$(zenity --file-selection)
la variable $fichier contient le chemin complet ainsi que le nom du fichier sélectionné
echo $fichier
Boite de dialogue liste
code=$(zenity --list --column=code --column=couleur "#000000" noir "#FFFFFF" blanc "#0000FF" bleu "#FF0000" rouge "#FFFF00" jaune)
La variable $code contient le contenu de la première colonne à la validation
ls -l >repert
zenity --list --width=700 --height=500 --column=repertoire <repert
Boite de saisie
mdp=$(zenity --entry --title "Saisie" --text "mot de passe" --hide-text)
La variable $mdp contient la saisie
nom=$(zenity --entry --title "Saisie" --text "entrez votre nom ")
La variable $nom contient le nom saisi
Calendrier
delai=$(zenity --calendar --text "selectionner une date" --date-format "%d %B %Y")
La variable $delai contient la date sélectionnée au format défini
echo $delai
25 janvier 2012
--date-format permet de spécifier le format de la date renvoyée.
Ce format est compatible avec celui de la fonction strftime (voir man strftime).
Boite de texte d’information
zenity --text-info --width=700 --height=400 --title "config dosbox" --filename "$HOME/dosbox.conf"
Affiche le fichier dosbox.conf à la racine du répertoire utilisateur ($HOME)