Linux Shell Scripting

Barres de progression Bash : Trois méthodes puissantes

Spread the love

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

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 pvdialog est généralement disponible via le gestionnaire de paquets de votre distribution (par exemple, sudo apt-get install dialogsudo yum install dialogsudo 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-devsudo yum install ncurses-develsudo 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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *