Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/02/2015, à 16:21

Asakura-shin

barre de chargement

Bonjour,
pour mon script j'aimerais cree une vraix barre de chargement
script actuel:

#!/bin/bash
function timer
{
i=0
printf "["
while [ $i -le 4 ]
do
    printf "=="
    sleep 1
let i=$i+1
done
echo -e ">]"
}
#Update
apt-get -qq update
timer
echo -e "Update System		[\033[32m OK \033[0m]\n"

j aimerais donc avoir une barre de chargement car la c'est juste un timer inutile aussi -qq fait que rien apparais fait expre pour laisser place a une barre de chargement des idée?

Dernière modification par Asakura-shin (Le 22/02/2015, à 21:36)

Hors ligne

#2 Le 22/02/2015, à 21:12

Hizoka

Re : barre de chargement

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=0${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
}

il te suffit d'appeler la commande superprogression wink

c'est à toi après de te débrouiller pour envoyer le pourcentage que tu veux afficher.

mais je viens de voir :
http://askubuntu.com/questions/445245/h … gress-bars
http://stackoverflow.com/questions/2649 … ogress-bar

Dernière modification par Hizoka (Le 22/02/2015, à 21:19)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#3 Le 22/02/2015, à 21:22

pingouinux

Re : barre de chargement

Bonsoir Hizoka,
Pour info, si tu veux que le pourcentage écrit avec 3 chiffres soit affecté à la variable progression

printf -v progression "%03d" $1

Hors ligne

#4 Le 22/02/2015, à 21:36

Asakura-shin

Re : barre de chargement

bon je testerais sa demain merci pour tout

Hors ligne

#5 Le 22/02/2015, à 21:46

Hizoka

Re : barre de chargement

pingouinux => merci je ne connaissais pas ça.


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne