Bonjour ,

Je cherche à comparer un nombre entier que je récupère d'une requête SNMP ( ici la température d'un onduleur ) , je stock cette valeurs dans un fichier texte afin de pouvoir isoler la valeur .

Cependant lorsque j'essaye de la faire passer dans ma boucle If , j'ai l'impression qu'il ne prend pas en compte la valeurs .
Malgré que je change la valeurs de la première condition il me retourne automatiquement Température normal

température.sh :
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
#!/bin/bash
 
info_brut=$(snmpwalk -Os -c $1 -v $2 $3 .1.3.6.1.4.1.3808.1.1.1.2.2.3.0)
snmpwalk -Os -c public -v 1 xxx.xxx.xxx.xxx .1.3.6.1.4.1.3808.1.1.1.2.2.3.0 > résultat.txt
 
if (egrep -o '[[:digit:]]*$'./résultat.txt <<< 20) ; then
        echo "Température haute"
        exit 1
elif (egrep -o '[[:digit:]]*$'./résultat.txt <<< 30) ; then
        echo "Température trop haute"
        exit 2
else
        echo "Température normal"
        exit 0
fi
Résultat.txt :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
enterprises.3808.1.1.1.2.2.3.0 = Gauge32: 25
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
[root@SRV-SUPER-01 custom]# ./température.sh public 1 xxx.xxx.xxx.xxx
enterprises.3808.1.1.1.2.2.3.0 = Gauge32: 25
Température normal
Peut être que un avis extérieur pourrait m’éclaircir les idées ?