Comment ajouter une interface graphique aux scripts shell Linux
Publié: 2022-01-29 Vous pouvez utiliser des fenêtres d'interface graphique, des curseurs, des boutons radio, des barres de progression, etc. dans vos scripts Bash. Apprenez à utiliser la boîte à outils zenity
et donnez un coup de jeune à vos scripts Bash. Nous allons vous montrer comment.
Le script Bash est un langage de programmation puissant et, comme il est intégré au shell Bash, il est facilement accessible à tous. C'est un langage facile pour commencer à programmer. Parce qu'il est interprété, vous n'avez pas besoin de compiler vos scripts. Dès que vous avez édité le fichier de script et l'avez rendu exécutable, vous pouvez l'exécuter. Cela rend le cycle de codage, d'exécution et de débogage assez efficace.
Il y a deux plaintes principales que les gens ont avec les scripts Bash, et la première est la vitesse. Étant donné que le shell Bash interprète les commandes du script, elles ne s'exécutent pas aussi rapidement que le code compilé. Cependant, c'est comme se plaindre qu'un tracteur n'est pas aussi rapide qu'une voiture ; ils sont destinés à différentes choses.
Il existe cependant deux types de vitesse. Vous pouvez souvent assembler un script rapide et l'utiliser pour effectuer une tâche beaucoup plus rapidement que de développer une solution dans un langage compilé, tel que C.
La deuxième plainte que les gens ont avec les scripts Bash est l'interface utilisateur - c'est une fenêtre de terminal. Bien sûr, parfois l'interface n'a pas d'importance. Si la seule personne qui utilisera le script est son auteur, l'interface n'est probablement pas si importante. Cela n'a pas non plus d'importance pour les scripts qui effectuent un traitement en arrière-plan et par lots. En règle générale, ces scripts ne nécessitent pas beaucoup (le cas échéant) d'interaction de l'utilisateur.
Il y a des occasions où vous avez besoin de quelque chose d'un peu plus intuitif et moderne que la fenêtre du terminal. La plupart des gens sont familiers avec une interface utilisateur graphique (GUI). Pour offrir aux utilisateurs une expérience aussi fluide que possible, vous devez créer et utiliser des éléments d'interface graphique à partir de vos scripts.
L'application zénité
zenity
vous permet d'incorporer une large gamme d'éléments d'interface graphique dans vos scripts Bash. C'est une boîte à outils puissante qui donne à vos scripts une touche moderne et une apparence contemporaine et familière.
zenity
est préinstallé sur les distributions Ubuntu, Fedora et Manjaro. Cela fait partie de GNOME. Si vous utilisez KDE, vous voudrez peut-être plutôt consulter kdialog
, bien que zenity
fonctionne sur n'importe quel environnement de bureau.
Les exemples de cet article vous montrent comment créer les différentes fenêtres de dialogue à partir de la ligne de commande, comment capturer leurs valeurs de retour et les sélections de l'utilisateur dans des variables, et comment utiliser les fenêtres de dialogue dans des scripts.
Nous terminons avec une petite application qui utilise les trois types de fenêtres de dialogue.
La fenêtre de dialogue Calendrier
Une fenêtre de dialogue de calendrier permet à quelqu'un de sélectionner une date. Pour en créer un avec zenity
nécessite une seule commande de deux mots :
zenity --calendrier
La fenêtre de dialogue du calendrier apparaît. Cela a toutes les fonctionnalités que vous attendez d'un sélecteur de date standard. Vous pouvez changer le mois et l'année, et cliquer sur un jour pour sélectionner cette date. Par défaut, la date du jour est mise en surbrillance lorsque la fenêtre apparaît.
Cliquez sur "OK" pour fermer la fenêtre de dialogue et sélectionnez la date en surbrillance. Double-cliquer sur une date a le même effet.
Si vous ne souhaitez pas sélectionner de date, cliquez sur "Annuler", appuyez sur la touche "Echap" de votre clavier ou fermez la fenêtre de dialogue.
Dans l'exemple ci-dessus, le 19 août 2019 est sélectionné. Si l'utilisateur clique sur "OK", le calendrier se ferme et la date sélectionnée s'imprime dans la fenêtre du terminal.
Vous pouvez ignorer la ligne « GTKDialog mappé sans parent transitoire. C'est déconseillé. »
GTK signifie GIMP Tool Kit, qui est la boîte à outils utilisée pour développer l'interface GNOME. Il a été conçu à l'origine par les auteurs du programme de manipulation d'images GNU (GIMP). GNU signifie GNU's Not Unix.
Le moteur GTK avertit les auteurs de zenity
qu'ils ont utilisé un composant GTK de manière non standard.
Capture de la valeur de date
L'impression de la date sur le terminal ne fait pas grand-chose pour nous. Si nous allons appeler ce calendrier à partir de l'un de nos scripts, nous devons capturer la valeur de date sélectionnée afin de pouvoir en faire quelque chose d'utile dans notre script. Nous personnaliserons également légèrement le calendrier.
Nous utiliserons les options suivantes avec le calendrier. Ils doivent tous être utilisés avec le drapeau à double tiret "-":
- –text : spécifie une chaîne de texte à afficher dans le calendrier. Il remplace la valeur par défaut, "Sélectionnez une date ci-dessous".
- –title : Définit le titre de la fenêtre de dialogue du calendrier.
- –day : définit le jour sélectionné à l'ouverture du calendrier.
- –month : Définit le mois sélectionné à l'ouverture du calendrier.
- –year : Définit l'année qui est sélectionnée lorsque le calendrier s'ouvre.
Nous utilisons une variable appelée ChosenDate
pour capturer la date renvoyée par le calendrier. Et nous utilisons echo $ChosenDate
pour imprimer cette date dans la fenêtre du terminal.
Oui, nous avons obtenu le même résultat dans l'exemple précédent, mais ici, nous avons la date sélectionnée stockée dans une variable. Dans l'exemple précédent, il a été imprimé et oublié.
ChosenDate=$(zenity -- calendar --text "Choose a date" --title "How-To Geek Rota" --day 1 -- month 9 --year 2019); echo $ChosenDate
Maintenant, le calendrier affiche notre invite et notre titre de fenêtre. La date est définie sur la date de début que nous avons choisie plutôt que sur la date d'aujourd'hui.
Nous pouvons également personnaliser le format de la chaîne de date renvoyée lorsqu'une sélection est effectuée. L'option --date-format
doit être suivie d'un spécificateur de format. Il s'agit d'une chaîne de jetons qui définissent les données et les formats à inclure dans la sortie. Les jetons sont les mêmes que ceux utilisés avec la fonction de langage C strftime()
et il y en a une grande sélection.
Les jetons que nous utilisons sont :
- %A : Le nom complet du jour de la semaine.
- %d : Le jour du mois sous forme de chiffre.
- %m : Le mois sous forme de chiffre.
- %y : L'année sur deux chiffres (pas de siècle).
ChosenDate=$(zenity -- calendar --text "Choose a date" --title "How-To Geek Rota" --date-format="%A %d/%m/%y" --day 1 -- mois 9 --année 2019); echo $ChosenDate
Quelqu'un sélectionne une date :
Et la date est retournée en utilisant notre format. Il affiche le nom du jour de la semaine, suivi de la date dans l'ordre européen : jour, mois, année.
La fenêtre de dialogue de sélection de fichier : choisir un fichier
Les fenêtres de dialogue de sélection de fichiers sont assez complexes. Les utilisateurs peuvent parcourir le système de fichiers, mettre en surbrillance un ou plusieurs fichiers, puis cliquer sur "OK" pour sélectionner ces fichiers ou annuler complètement la sélection.
zenity
fournit toutes ces fonctionnalités, et plus encore. Et c'est aussi facile à utiliser que la fenêtre de dialogue du calendrier.
Les nouvelles options que nous allons utiliser sont :
- –file-selection : Indique à
zenity
que nous voulons utiliser une fenêtre de dialogue de sélection de fichier. - –multiple : permet à quelqu'un de sélectionner plus d'un fichier.
- –file-filter : Indique à la fenêtre de dialogue de fichier quels types de fichiers afficher.
zenity --file-selection --tile "How-To Geek" --multiple --file-filter='*.mm *.png *.page *.sh *.txt'
La fenêtre de dialogue de sélection de fichier est aussi fonctionnelle que n'importe quelle autre fenêtre de sélection de fichier.
L'utilisateur peut parcourir le système de fichiers et sélectionner le fichier de son choix.
Nous avons parcouru un nouveau répertoire et sélectionné un fichier appelé "button_hybrid.png".
Lorsque vous cliquez sur "OK", la fenêtre de dialogue de sélection de fichier se ferme et le nom de fichier et le chemin s'impriment dans la fenêtre du terminal.
Si vous avez besoin d'utiliser le nom de fichier dans un traitement ultérieur, vous pouvez le capturer dans une variable, comme vous l'avez fait pour la date du calendrier.
La fenêtre de dialogue de sélection de fichier : enregistrement d'un fichier
Si nous ajoutons une option, nous pouvons transformer la fenêtre de dialogue de sélection de fichier en une fenêtre de dialogue d'enregistrement de fichier. L'option est --save
. Nous allons également utiliser l'option --confirm-overwrite
. Cela invite la personne à confirmer qu'elle veut écraser un fichier existant.
Réponse=$(zenity --file-selection --save --confirm-overwrite); echo $Réponse
La fenêtre de dialogue d'enregistrement de fichier apparaît. Notez qu'il y a un champ de texte où quelqu'un peut taper un nom de fichier.
L'utilisateur peut accéder à l'emplacement de son choix dans le système de fichiers, donner un nom au fichier ou cliquer sur un fichier existant pour le remplacer.
Dans l'exemple ci-dessus, l'utilisateur a mis en surbrillance un fichier existant.
Lorsqu'il clique sur "OK", une fenêtre de dialogue de confirmation apparaît lui demandant de confirmer qu'il souhaite remplacer le fichier existant. Notez que le nom du fichier apparaît dans la boîte de dialogue d'avertissement. C'est le genre d'attention portée aux détails qui donne à zenity
son apparence professionnelle.
Si nous n'avions pas utilisé l'option --confirm-overwrite
, le fichier aurait été écrasé silencieusement.
Le nom du fichier est stocké dans la variable Response
, qui s'affiche dans la fenêtre du terminal.
Fenêtres de dialogue de notification
Avec zenity
, l'inclusion de fenêtres de dialogue de notification élégantes dans vos scripts se fait sans effort. Il existe des fenêtres de dialogue standard auxquelles vous pouvez faire appel pour fournir des informations, des avertissements, des messages d'erreur et des questions à l'utilisateur.
Pour créer une fenêtre de dialogue de message d'erreur, utilisez la commande suivante :
zenity --error --width 300 --text "Autorisation refusée. Impossible d'écrire dans le fichier."
Les nouvelles options que nous utilisons sont :
- –error : indique à
zenity
que nous voulons utiliser une fenêtre de dialogue d'erreur. - –width : Définit la largeur initiale de la fenêtre.
La fenêtre de dialogue d'erreur apparaît à la largeur spécifiée. Il utilise l'icône d'erreur GTK standard.
Pour créer une fenêtre de dialogue d'informations, utilisez la commande suivante :
zenity --info --width 300 --text "Mise à jour terminée. Cliquez sur OK pour continuer."
La nouvelle option que nous utilisons est --info
, qui indique à zenity
de créer une fenêtre de dialogue d'informations.
Pour créer une fenêtre de dialogue de question, utilisez la commande suivante :
zenity --question --width 300 --text "Etes-vous heureux de continuer?"; echo $?
La nouvelle option que nous utilisons est --question
, qui indique à zenity
de créer une fenêtre de dialogue de question.
Le $?
est un paramètre spécial. Il contient la valeur de retour du pipeline de premier plan le plus récemment exécuté. En termes généraux, il s'agit de la valeur du processus le plus récemment fermé. Une valeur nulle signifie « OK » et une valeur de un ou plusieurs signifie « Annuler ».
Il s'agit d'une technique générale que vous pouvez appliquer à n'importe quelle fenêtre de dialogue zenity
. En vérifiant cette valeur dans votre script, vous pouvez déterminer si les données renvoyées par une fenêtre de dialogue doivent être traitées ou ignorées.
Nous avons cliqué sur "Oui", donc le code de retour est un zéro indiquant "OK".
Pour créer une fenêtre de dialogue d'avertissement, utilisez la commande suivante :
zenity --warning --title "Low Hard Drive Space" --width 300 --text "Il se peut qu'il n'y ait pas assez d'espace sur le disque dur pour enregistrer la sauvegarde."
La nouvelle option que nous utilisons est --warning
, qui indique à zenity
de créer une fenêtre de dialogue d'avertissement.
La fenêtre de dialogue d'avertissement s'affiche. Ce n'est pas une question, donc il n'a qu'un seul bouton.
La fenêtre de dialogue de progression
Vous pouvez utiliser la fenêtre de dialogue de progression de zenity
pour afficher une barre de progression qui indique à quel point votre script est proche de l'achèvement.
La barre de progression est avancée en fonction des valeurs qui y sont transmises à partir de votre script. Pour illustrer le principe, utilisez la commande suivante :
(for i in $(seq 0 10 100); do echo $i; sleep 1; done)
La commande se décompose ainsi :
- La commande
seq
parcourt une séquence de 0 à 100, par pas de 10. - A chaque étape, la valeur est stockée dans la variable
i
. Cela s'imprime dans la fenêtre du terminal. - La commande s'interrompt pendant une seconde, en raison de la commande
sleep 1
.
Nous pouvons l'utiliser avec la fenêtre de dialogue de progression de zenity
pour illustrer la barre de progression. Notez que nous dirigeons la sortie de la commande précédente vers zenity:
(for i in $(seq 0 10 100); do echo $i; sleep 1; done) | zenity --progress --title "How-To Geek" -- fermeture automatique
Les nouvelles options que nous utilisons sont :
- –progress : indique à
zenity
que nous voulons utiliser une fenêtre de dialogue de progression. - –auto-close : ferme la boîte de dialogue lorsque la barre de progression atteint 100 %.
La fenêtre de dialogue de progression apparaît et la barre avance vers 100 %, en s'arrêtant une seconde entre chaque étape.
Nous pouvons utiliser ce concept de canalisation des valeurs dans zenity
pour inclure la fenêtre de dialogue de progression dans un script.
Entrez ce texte dans un éditeur et enregistrez-le sous « progress.sh ».
!/bin/bas fonction liste de travail () { echo "# Premier élément de travail" écho "25" dormir 1 echo "# Deuxième élément de travail" écho "50" dormir 1 echo "# Troisième élément de travail" écho "75" dormir 1 echo "# Dernier élément de travail" écho "100" dormir 1 } liste de travail | zenity --progress --title "Comment Geek" --auto-close sortie 0
Voici une ventilation du script :
- Le script définit une fonction appelée
work-list
. C'est là que vous mettez vos commandes et instructions pour effectuer un travail réel. Remplacez chacune des commandessleep 1
par vos vraies commandes. -
zenity
accepte les lignes d'echo "# ..."
et les affiche dans la fenêtre de dialogue de progression. Modifiez le texte de ces lignes afin qu'elles transmettent des messages informatifs à l'utilisateur. - Les lignes d'
echo
contenant des nombres, telles queecho "25"
, sont également acceptées parzenity
et définissent la valeur de la barre de progression. - La fonction work-list est appelée et redirigée vers
zenity
.
Utilisez cette commande pour rendre le script exécutable :
chmod +x progression.sh
Utilisez cette commande pour exécuter le script :
./progress.sh
Le script s'exécute et le message texte change à chaque phase de l'exécution du script. La barre de progression se déplace par étapes vers 100 %.
La fenêtre de dialogue Echelle
La fenêtre de dialogue d'échelle permet à quelqu'un de déplacer un curseur pour choisir une valeur numérique. Cela signifie qu'elle ne peut pas saisir une valeur trop élevée ou trop faible.
Les nouvelles options que nous utilisons sont :
- –scale : indique à
zenity
que nous voulons utiliser une fenêtre de dialogue d'échelle. - –min-value : définit la valeur minimale de l'échelle.
- –max-value : Définit la valeur maximale de l'échelle.
- –step : Définit le degré de déplacement du curseur lorsque les touches fléchées sont utilisées. Cela n'affecte pas les mouvements du curseur si quelqu'un utilise la souris.
- –value : Définit la valeur initiale et la position du curseur.
Voici la commande que nous utilisons :
Response=$(zenity --scale --title "How-To Geek" --text "Sélectionnez le grossissement." --min-value=0 --max-value=30 --step=3 --value15); echo $Réponse
La fenêtre de dialogue du curseur apparaît avec le curseur réglé sur 15.
L'utilisateur peut déplacer le curseur pour sélectionner une nouvelle valeur.
Lorsqu'elle clique sur "OK", la valeur est transférée dans la variable Response
et imprimée dans la fenêtre du terminal.
La fenêtre de dialogue d'entrée
La fenêtre de dialogue de saisie permet à quelqu'un de saisir du texte.
Les nouvelles options que nous utilisons sont :
- –entry : indique à
zenity
que nous voulons utiliser une fenêtre de dialogue d'entrée. - –entry-text : vous pouvez l'utiliser si vous souhaitez saisir une valeur suggérée dans le champ de saisie de texte. Nous utilisons "" pour forcer un champ vide. Ce n'est pas strictement requis, mais nous voulions documenter l'option.
La commande complète ressemble à ceci :
Response=$(zenity --entry --text "Entrez votre terme de recherche" --title "Howe-To Geek" --entry-text=""); echo $Réponse
Une simple fenêtre de dialogue apparaît, contenant un champ de saisie de texte.
Quelqu'un peut saisir et modifier du texte.
Lorsqu'il clique sur « OK », la valeur qu'il a saisie est affectée à la variable Réponse. Nous utilisons echo pour imprimer la valeur de la variable dans la fenêtre du terminal.
Mettre tous ensemble
Assemblons ces techniques et créons un script fonctionnel. Le script effectuera une analyse des informations sur le matériel et présentera les résultats à l'utilisateur dans une fenêtre de texte défilante. Elle peut choisir un type de balayage long ou court.
Pour ce script, nous utiliserons trois types de fenêtres de dialogue, dont deux sont nouvelles pour nous :
- La première est une fenêtre de dialogue de liste. Cela permet à quelqu'un de faire un choix.
- La seconde est une fenêtre de dialogue de progression qui permet à l'utilisateur de savoir que quelque chose se passe et qu'il doit attendre.
- La troisième est une fenêtre d'informations textuelles, qui affiche les résultats à l'utilisateur.
Entrez ce texte dans un éditeur et enregistrez-le sous « hardware-info.sh ».
#!/bin/bash # Afficher la liste du matériel pour cet ordinateur FichierTemp=$(mktemp) ListType=`zenity --width=400 --height=275 --list --radiolist \ --title 'Analyse matérielle' \ --text 'Sélectionnez le type d'analyse :' \ --column 'Sélectionner' \ --column 'Type de numérisation' VRAI "Court" FAUX "Long"` si [[ $ ? -eq 1 ]] ; ensuite # ils ont appuyé sur Annuler ou fermé la fenêtre de dialogue zenity --error --title="Scan refusé" --width=200 \ --text="Analyse matérielle ignorée" sortie 1 elif [ $ListeType == "Court" ]; ensuite # ils ont sélectionné le bouton radio court Drapeau="--court" autre # ils ont sélectionné le bouton radio long Drapeau="" Fi # recherche les informations sur le matériel avec la valeur appropriée dans $Flag hwinfo $Flag | tee >(zenity --width=200 --height=100 \ --title="Assemblage d'informations" --progress \ --pulsate --text="Vérification du matériel..." \ --auto-kill --auto-close) >${TempFile} # Afficher les informations sur le matériel dans une fenêtre déroulante zenity --width=800 --height=600 \ --title "Détails du matériel" \ --text-info --filename="${TempFile}" sortie 0
Utilisez cette commande pour le rendre exécutable :
chmod +x info-matériel.sh
Ce script crée un fichier temporaire et le nom du fichier est contenu dans la variable TempFile :
FichierTemp=$(mktemp)
Le script utilise l'option --list
pour créer une fenêtre de dialogue zenity
appelée fenêtre de dialogue de liste. Les caractères "\" à la fin des lignes indiquent au script de les traiter comme une longue ligne enroulée autour. Voici le processus :
- Nous spécifions une largeur et une hauteur pour la fenêtre.
- La fenêtre de dialogue de liste prend en charge les colonnes. L'option
--radiolist
fait que la première colonne est une colonne de boutons radio. - Nous définissons un titre et une invite de texte pour la fenêtre.
- Nous définissons le titre de la première colonne sur "Sélectionner". Le contenu de cette colonne sera les boutons radio.
- Nous définissons le titre de la deuxième colonne sur "Sélectionner" et nous fournissons le contenu de la deuxième colonne. Cette colonne contient deux libellés de texte : "Court" et "Long". Les indicateurs VRAI et FAUX signifient que l'option "Court" est sélectionnée par défaut lorsque la fenêtre de dialogue apparaît.
- Nous stockons le résultat de cette fenêtre de dialogue dans une variable appelée
ListType
.
ListType=`zenity --width=400 --height=275 --list --radiolist \ --title 'Analyse matérielle' \ --text 'Sélectionnez le type d'analyse :' \ --column 'Sélectionner' \ --column 'Type de numérisation' VRAI "Court" FAUX "Long"`
Si l'utilisateur appuie sur "Annuler", nous n'avons pas besoin de vérifier la valeur dans ListType,
nous pouvons simplement quitter. S'il appuie sur "OK", nous devons savoir s'il a sélectionné le bouton radio "Court" ou "Long":
- Le paramètre spécial
$?
est égal à zéro si l'utilisateur a appuyé sur "OK". Il est égal à un s'il a appuyé sur "Annuler" ou fermé la fenêtre. - S'il est égal à un, le script affiche une fenêtre de dialogue d'informations d'erreur et se termine. S'il appuie sur "OK", nous passons au test de la valeur dans la variable
ListType
. - Si la variable
ListType
contient la valeur « Short », le script définit une variable appeléeFlag
sur la valeur « –short ». - Si la variable
ListType
ne contient pas la valeur "Short", elle doit contenir la valeur "Long". Le script définit une variable appeléeFlag
sur la valeur "", qui est une chaîne vide. - Le script utilise la variable
Flag
dans la section suivante.
si [[ $ ? -eq 1 ]] ; ensuite # ils ont appuyé sur Annuler ou fermé la fenêtre de dialogue zenity --error --title="Analyse refusée" --width=200 \ --text="Analyse matérielle ignorée" sortie 1 elif [ $ListeType == "Court" ]; ensuite # ils ont sélectionné le bouton radio court Drapeau="--court" autre # ils ont sélectionné le bouton radio long Drapeau="" Fi
Maintenant que le script sait quel type d'analyse l'utilisateur souhaite, nous pouvons effectuer l'analyse des informations matérielles :
- Le script appelle la commande
hwinfo
et lui transmet la valeur dans la variableFlag
. - Si
Flag
contient « –short », la commandehwinfo
effectue une brève analyse. Si la valeur deFlag
est "", rien ne passe àhwinfo
et une analyse longue par défaut est effectuée. - Le script dirige la sortie de
hwinfo
verstee
.tee
envoie la sortie danszenity
et leTempFile
. - Le script crée une fenêtre de dialogue de barre de progression. Il définit la largeur et la hauteur de la fenêtre de dialogue, ainsi que le titre et les textes d'invite.
- Le script ne peut pas savoir à l'avance la quantité d'informations que la commande
hwinfo
produira, il ne peut donc pas définir la barre de progression pour avancer correctement à 100 %. L'option--pulsate
entraîne l'affichage d'un indicateur mobile dans la boîte de dialogue de progression. Cela informe l'utilisateur que quelque chose se passe et qu'il doit attendre. - L'option
--auto-kill
termine le script si quelqu'un clique sur "Annuler". - L'option
--auto-close
provoque la fermeture automatique de la boîte de dialogue de progression lorsque le processus qu'elle surveille se termine.
# recherche les informations sur le matériel avec la valeur appropriée dans $Flag hwinfo $Flag | tee >(zenity --width=200 --height=100 \ --title="Assemblage d'informations" --progress \ --pulsate --text="Vérification du matériel..." \ --auto-kill --auto-close) >${TempFile}
Lorsque l'analyse hwinfo
terminée, le script appelle zenity
pour créer une fenêtre de dialogue d'informations textuelles avec l'option --text-info
. La fenêtre de dialogue d'informations textuelles affiche le contenu du fichier TempFile
:
- Le script définit la largeur et la hauteur de la fenêtre de dialogue et le texte du titre.
- L'option
--flename
est utilisée pour lire le contenu du fichier contenu dans la variableTempFIle
.
# Afficher les informations sur le matériel dans une fenêtre déroulante zenity --width=800 --height=600 \ --title "Détails du matériel" \ --text-info --filename="${TempFile}"
Lorsque l'utilisateur ferme la fenêtre de dialogue d'informations textuelles, le script se ferme.
sortie 0
Allumons-le et regardons.
./hardware-info.sh
La zone de liste apparaît. L'option "Court" est sélectionnée par défaut.
Sélectionnons "Long", puis cliquez sur "OK".
La fenêtre de progression apparaît avec un indicateur coulissant. Il reste à l'écran jusqu'à ce que l'analyse du matériel soit terminée.
Lorsque l'analyse du matériel est terminée, la fenêtre de dialogue d'informations textuelles apparaît avec les détails de l'analyse.
Cliquez sur OK."
Même un jockey de ligne de commande pur et dur doit admettre que quelques fenêtres de dialogue GUI peuvent donner à un humble script Bash une touche professionnelle.