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:
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 |