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