1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| decimal="^[+-]?[0-9]*[.,]([0-9]+)$"
for n in 0.000 .000 0.1 .1 0.23 .23 50 -50 50.000 -50.000 abc abc.def 00.def abc.000
do [[ $n =~ $decimal ]]
case ${#BASH_REMATCH[1]} in
1) echo "$n a 1 décimale";;
2) echo "$n a 2 décimales";;
*) echo "$n a plus de 2 décimales, ou est un nombre entier, ou encore n'est pas un nombre"
esac
done
0.000 a plus de 2 décimales, ou est un nombre entier, ou encore n'est pas un nombre
.000 a plus de 2 décimales, ou est un nombre entier, ou encore n'est pas un nombre
0.1 a 1 décimale
.1 a 1 décimale
0.23 a 2 décimales
.23 a 2 décimales
50 a plus de 2 décimales, ou est un nombre entier, ou encore n'est pas un nombre
-50 a plus de 2 décimales, ou est un nombre entier, ou encore n'est pas un nombre
50.000 a plus de 2 décimales, ou est un nombre entier, ou encore n'est pas un nombre
-50.000 a plus de 2 décimales, ou est un nombre entier, ou encore n'est pas un nombre
abc a plus de 2 décimales, ou est un nombre entier, ou encore n'est pas un nombre
abc.def a plus de 2 décimales, ou est un nombre entier, ou encore n'est pas un nombre
00.def a plus de 2 décimales, ou est un nombre entier, ou encore n'est pas un nombre
abc.000 a plus de 2 décimales, ou est un nombre entier, ou encore n'est pas un nombre |
Partager