IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Bash : calculer le pourcentage


Sujet :

Shell et commandes GNU

  1. #1
    Membre régulier Avatar de YuGiOhJCJ
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2005
    Messages : 206
    Points : 114
    Points
    114
    Par défaut Bash : calculer le pourcentage
    Bonjour,

    je souhaite en utilisant l’interpréteur Bash (et avec seulement les commandes externes 'test' et 'seq' ainsi que les builtins) calculer le pourcentage.

    Le pourcentage de quoi? Le pourcentage de l'accomplissement d'une opération constituée d'un certain nombre connu d'étapes.

    Un exemple? Une opération à 3 étapes :
    $ ./percentage.sh 3
    0%
    33%
    66%

    Pour une opération constituée de plus de 100 étapes , on va devoir afficher plusieurs fois le même pourcentage :
    $ ./percentage.sh 200
    0%
    0%
    1%
    1%
    2%
    2%
    ...

    Alors j'ai réalisé un script qui fait ça, mais moi je me complique toujours la vie quand je développe. Peut être que vous pouvez me trouver plus simple?

    Merci d'avance ;-)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    #!/bin/sh
    nbr=${1}
    step=$((100 / ${nbr}))
    wait_cur=0
    wait_max=0
    if test ${step} -eq 0; then
    	step=1
    	substraction=$((${nbr} - 100))
    	wait_max=$((${wait_max} + 1))
    	while test ${substraction} -gt 100; do
    		substraction=$((${substraction} - 100))
    		wait_max=$((${wait_max} + 1))
    	done
    fi
    percentage=0
    for each in `seq 1 ${nbr}`; do
    	echo "${percentage}%"
    	if  test ${wait_cur} -lt ${wait_max}; then
    		wait_cur=$((${wait_cur}+1))
    	else
    		percentage=$((${percentage} + ${step}))
    		wait_cur=0
    	fi
    done

  2. #2
    Membre averti Avatar de fransoo
    Inscrit en
    Novembre 2009
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 209
    Points : 300
    Points
    300
    Par défaut
    Le plus basique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for ((i=0; i<=$1; i++)); do
        echo "$((i*100/$1))%"
    done
    Maintenant, je ne vois pas bien l'usage des wait_cur et wait_max.
    Les script doit-il interagir avec un autre ?

  3. #3
    Membre régulier Avatar de YuGiOhJCJ
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2005
    Messages : 206
    Points : 114
    Points
    114
    Par défaut
    Non le script doit pas interagir avec un autre...

    Les variables wait_cur et wait_max me permettent de savoir combien de fois je dois répéter l'affichage d'un même pourcentage. Par exemple avec ${1} = 200, wait_max est égal à 1. Ainsi, wait_cur vaut 0, puis 1 et enfin passe au pourcentage suivant.

    Mais en voyant que ta technique en 3 lignes fonctionne... Je me dis que je suis encore parti dans un truc inutile. En tout cas je te remercie c'est beaucoup plus simple et ça fait la même chose on dirait

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Calcul de pourcentages
    Par Lypertrophie dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 30/06/2006, 11h25
  2. Reqête avec un calcul de pourcentage
    Par jean-pierre96 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/05/2006, 13h00
  3. Réponses: 1
    Dernier message: 10/01/2006, 20h35
  4. calcul de pourcentage
    Par PAUL87 dans le forum Access
    Réponses: 12
    Dernier message: 20/09/2005, 19h50
  5. Calcul de pourcentage
    Par megazen dans le forum Langage SQL
    Réponses: 3
    Dernier message: 19/11/2003, 16h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo