Créer la barre de progression dans Bash

Creer La Barre De Progression Dans Bash



Lorsqu'il est nécessaire d'attendre un temps fixe lors de l'exécution d'un script, il est préférable de créer une barre de progression pour informer l'utilisateur d'attendre un certain temps. La barre de progression peut être créée à l'aide d'un simple script Bash ou à l'aide de certaines commandes Linux intégrées telles que 'cv', 'dialog', etc. Les méthodes de création d'une barre de progression à l'aide d'un script Bash sont présentées dans ce didacticiel.

Différents exemples de création d'une barre de progression dans Bash

Les différentes manières d'implémenter une barre de progression dans Bash sont présentées dans cette partie du didacticiel.

Exemple 1 : implémenter une barre de progression simple sans aucune commande

Créez un fichier Bash avec le script suivant qui affiche une barre de progression à l'aide du caractère '#' et de la commande 'sleep'. La commande « printf » est utilisée ici pour afficher la barre de progression. La barre de progression est divisée en quatre parties. Les 25% s'affichent après 1 seconde. Le 50% s'affiche après 3 secondes. Le 75% s'affiche après 2 secondes. Le 100% s'affiche après 1 seconde.







#!/bin/bash

printf ' \n Attendez de terminer la tâche... \n \n '

#Attendez 1 seconde

dormir 1

#Imprimer la première partie de la barre de progression

printf '[##### ] 25%% terminé. \r '

#Attendez 3 secondes

dormir 3

#Imprimer la deuxième partie de la barre de progression

printf '[########## ] 50 %% terminé. \r '

#Attendez 2 secondes

dormir 2

#Imprimer la troisième partie de la barre de progression

printf '[############### ] 75 %% terminé. \r '

#Attendez 1 seconde

dormir 1

#Imprimer le dernier de la barre de progression

printf '[####################] 100 %% terminé. \r '

printf ' \n \n Tâche terminée. \n \n '

.



La sortie suivante apparaît après 1 seconde d'exécution du script :







Le résultat suivant s'affiche 7 secondes après l'exécution du script :



Exemple 2 : implémenter la barre de progression à l'aide de la commande 'Pv'

La forme complète de la commande 'pv' est 'pipe viewer'. Il est utilisé pour surveiller la progression des données transmises dans le tube et afficher la barre de progression en fonction de la taille des données. Cette commande n'est pas installée par défaut dans le système. Exécutez la commande suivante pour installer la commande 'pv' avant de pratiquer le script de cet exemple :

$ sudo apte installer PV

Vous devez sélectionner un fichier de grande taille qui est copié d'un emplacement à un autre emplacement. Créez un fichier Bash avec le script suivant qui copie le fichier 'test.txt' de l'emplacement actuel vers l'emplacement '/home/fahmida/temp/'. La commande « pv » est utilisée ici pour afficher la barre de progression. La barre de progression s'affiche en fonction de la taille du fichier « test.txt ».

#!/bin/bash

écho 'Copie du fichier d'un emplacement à un autre emplacement.'

#Attendez 2 secondes

dormir 2

#Copier le fichier vers la destination

chat test.txt | PV -s $ ( statistique -c % s test.txt ) > / maison / compréhension / temp / test.txt

écho 'Le fichier a été copié.'

La sortie suivante s'affiche une fois l'exécution du script terminée :

Exemple 3 : implémenter la barre de progression à l'aide de la commande 'Dialog'

Une autre façon d'implémenter une barre de progression dans Bash consiste à utiliser la commande 'dialog'. Cette commande peut être utilisée pour afficher une belle barre de progression dans le terminal. De nombreux types de widgets peuvent être affichés à l'aide de cette barre de progression. La tâche de la barre de progression affichée par cette commande peut être contrôlée par le script Bash. Cette barre de progression n'est pas installée par défaut dans le système. Exécutez la commande suivante pour installer cette barre de progression dans le système :

$ sudo apte installer dialogue

Créez un fichier Bash avec le script suivant qui affiche une barre de progression à l'aide de la commande 'dialog'. La tâche de copie du fichier '/etc/passwd' dans l'emplacement '/home/fahmida/tempdir' est affichée à l'aide d'une barre de progression. La barre de progression est divisée en cinq parties ; chaque partie est affichée après 2 secondes. L'option –title est utilisée dans la commande « dialog » pour afficher le titre de la barre de progression. L'option –gauge est utilisée dans la commande 'dialog' pour afficher la barre de progression avec une hauteur de 10 lignes et une largeur de 100 caractères. Le message 'En attente de terminer la tâche' s'affiche au-dessus de la barre de progression.

#!/bin/bash

#Initialiser le compteur

position_actuelle = 0

(

#Définir une boucle infinie

pour ( ( ;; ) )

faire

chat <
délimiteur

$pos_actuel

#Afficher la valeur actuelle du compteur

cp /etc/passwd vers /home/fahmida/tempdir ( $current_pos%) :

délimiteur

EOF


#Incrémenter le compteur de 20

( ( position_actuelle+= vingt ) )

#Terminer de la boucle lorsque la valeur du compteur est supérieure à 100

[ $pos_actuel -gt 100 ] && casser

#Attendre 2 secondes après chaque incrément

dormir 2

fait

) | dialogue --titre 'Copie du fichier...' --jauge 'En attente de terminer la tâche' dix 100 0


Le résultat suivant s'affiche après 6 secondes d'exécution du script :


Le résultat suivant s'affiche 10 secondes après l'exécution du script :


Conclusion

Les différentes manières de développer une barre de progression à l'aide d'un script Bash sont présentées dans ce tutoriel pour aider les utilisateurs de Bash à utiliser la barre de progression sur leur programme.