FUSHIA="\033[1;35m" RAZ="\e[m" BLEUFONCE="\033[1;34m" VERT="\033[0;32m" ROUGE="\033[1;31m" function superprogression { # ${1} : Pourcentage à afficher sans le signe % # ${2} : argument ajouté à la fin unset progression progression_barre # Verifie que le chiffre ne depasse pas 100% [[ ${1} != [0-9]* || ${1} -gt 100 ]] && return # Ajoute un ou deux 0 si besoin [[ ${1} == [0-9] ]] && progression=00${1} [[ ${1} == [0-9][0-9] ]] && progression=${1} [[ ${1} == [0-9][0-9][0-9] ]] && progression=${1} # Si le pourcentage est pair on y soustrait 1 (( (${1} % 2) == 1 )) && progression_barre=$(( (${1} - 1) / 2 )) if [[ $(tput cols) -gt 150 ]] then # Utilisation de 50 caracteres = ou espaces barre="====================================================================================================" espace=" " # Pas de division car la barre fait 100 progression_barre=${1} largeur_max=100 elif [[ $(tput cols) -gt 100 ]] then # Utilisation de 50 caracteres = ou espaces barre="==================================================" espace=" " # Division de la valeur par 2 car il y a 50 caracteres pour la barre progression_barre=$(( ${1} / 2 )) largeur_max=50 else # Utilisation de 25 caracteres = ou espaces barre="=========================" espace=" " # Division de la valeur par 4 car il y a 25 caracteres pour la barre progression_barre=$(( ${1} / 4 )) largeur_max=25 fi # Affichage du pourcentage, de la barre contenant soit des espaces soit des = if [[ ${progression_barre} != ${largeur_max} ]] then echo -en "\r${VERT}${progression}%${RAZ} : ${FUSHIA}[${BLEUFONCE}${barre::${progression_barre}}${FUSHIA}>${espace:${progression_barre}}]${RAZ} ${2} " else echo -en "\r${VERT}${progression}%${RAZ} : ${FUSHIA}[${BLEUFONCE}${barre::${progression_barre}}=${FUSHIA}]${RAZ} ${2} \n" fi }