Les barres de progression sont inestimables pour fournir un retour visuel pendant les processus longs, offrant aux utilisateurs une indication claire de l’avancement de la tâche. Bien que Bash ne prenne pas en charge nativement les barres de progression, plusieurs outils et bibliothèques externes offrent des solutions robustes. Ce guide explore trois méthodes distinctes : l’utilisation de la commande pv
, l’utilisation de la commande dialog
et l’emploi de la bibliothèque ncurses
.
Table des matières
- Utiliser
pv
pour les barres de progression - Employer
dialog
pour les barres de progression - Tirer parti de
ncurses
pour des barres de progression avancées
Utiliser pv
pour les barres de progression
La commande pv
(visualiseur de pipeline) excelle dans la surveillance des flux de données, ce qui la rend idéale pour visualiser la progression des transferts de fichiers ou des opérations similaires à forte intensité de données. Sa simplicité et son efficacité sont des avantages importants.
Installation :
pv
est facilement disponible via la plupart des gestionnaires de paquets de distribution Linux. Installez-le en utilisant la commande spécifique à votre distribution (par exemple, sudo apt-get install pv
sur Debian/Ubuntu, sudo yum install pv
sur CentOS/RHEL, sudo pacman -S pv
sur Arch Linux).
Utilisation :
La syntaxe fondamentale est simple :
pv fichier_entrée > fichier_sortie
Remplacez fichier_entrée
par votre fichier source et fichier_sortie
par la destination souhaitée. pv
affichera dynamiquement une barre de progression indiquant le débit de transfert et le temps d’achèvement estimé.
Exemple :
Pour copier un fichier volumineux (large_file.zip
) avec une barre de progression :
pv large_file.zip > copied_large_file.zip
La flexibilité de pv
va au-delà de la copie de fichiers. Il s’intègre parfaitement aux commandes générant des flux de données. Par exemple, pour surveiller l’extraction d’une archive tar :
tar -xvf large_archive.tar | pv > /dev/null
Ici, /dev/null
supprime les fichiers extraits, en se concentrant uniquement sur la surveillance de la progression.
Employer dialog
pour les barres de progression
La commande dialog
offre une gamme plus large de boîtes de dialogue interactives, y compris une barre de progression polyvalente. Elle offre un meilleur contrôle sur l’apparence de la barre par rapport à pv
et ne se limite pas aux flux de données.
Installation :
Comme pv
, dialog
est généralement disponible via le gestionnaire de paquets de votre distribution (par exemple, sudo apt-get install dialog
, sudo yum install dialog
, sudo pacman -S dialog
).
Utilisation :
La barre de progression de dialog
utilise l’option --gauge
. Vous spécifiez le titre, la valeur maximale (100 %) et la valeur actuelle. Le script met à jour itérativement la valeur actuelle.
Exemple :
Ce script simule un processus et affiche une barre de progression :
#!/bin/bash
for i in $(seq 1 100); do
dialog --gauge "Traitement..." 10 60 $i
sleep 0.1
done
dialog --infobox "Processus terminé !" 10 30
Le script boucle 100 fois, incrémentant la barre de progression. sleep 0.1
ajoute un délai pour la démonstration. Rendez le script exécutable à l’aide de chmod +x votre_script.sh
.
Tirer parti de ncurses
pour des barres de progression avancées
Pour une personnalisation et un contrôle maximum, la bibliothèque ncurses
offre une flexibilité inégalée. ncurses
manipule directement la sortie du terminal, permettant de créer des barres de progression très personnalisées. Cependant, cette approche exige une compréhension plus approfondie de la programmation et des fonctions ncurses
.
Installation :
ncurses
est souvent préinstallé. Sinon, installez-le à l’aide du gestionnaire de paquets de votre distribution (par exemple, sudo apt-get install libncurses5-dev
, sudo yum install ncurses-devel
, sudo pacman -S ncurses
).
Utilisation :
Un exemple complet de ncurses
dépasse la portée de ce guide en raison de sa complexité. Le processus consiste à initialiser ncurses
, à dessiner la barre à l’aide de fonctions telles que mvprintw
, à la mettre à jour itérativement et enfin à nettoyer ncurses
. Vous gérez manuellement la position du curseur. De nombreuses ressources en ligne proposent des tutoriels détaillés sur ncurses
en C ou dans d’autres langages ; l’adaptation de ceux-ci à Bash nécessite une attention particulière.
Cet article a présenté trois approches pour créer des barres de progression Bash. Choisissez la méthode la mieux adaptée à vos besoins et à vos compétences. pv
est idéal pour les tâches simples ; dialog
offre plus de contrôle ; et ncurses
offre une personnalisation ultime.