[SHELL LINUX] Comparer deux variables

khira -  
 Utilisateur anonyme -
Bonjour,

Je suis en train de me faire un script tout simple pour récupérer mon adresse ip publique, la stockée dans un fichier et la comparée avec mon ancienne IP. Pour le moment script ne va pas plus loin, plus tard il enverra un mail avec l'adresse IP

Je débute en script Linux et j'ai un problème avec la structure de If then else fi
Peu importe le contenu des mes deux variables je reste tout le temps dans le else

le fichier texte monip ne contient qu'une adresse IP.



#!/bin/bash 

#recup ip dans le fichier monip 
iplast= cat /home/xxx/script/monip 

#recup de l'adresse ip public actuelle 
ipnew=$(wget http://checkip.dyndns.org/ -O - -o /dev/null |egrep -ho "([0-9]*\.?){4}") 


#compare les deux variable 

if [ "$iplast"  =  "$ipnew"  ]; 

then 
        echo "l'adresse IP n'a pas changée" 


else 
        echo $ipnew 
        echo $iplast 
        echo $ipnew > /home/xxx/script/monip 

fi 



A voir également:

3 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
modifier cette ligne
iplast=$(cat /home/xxx/script/monip)
3
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Salut,

Et concernant la récupération d'IP, essaye aussi avec une de ces 2 méthodes :

wget -qO- whatismyip.akamai.com
ou
curl ifconfig.me/ip

1
Utilisateur anonyme
 
salut,

vu qu'il n'y a qu'une ligne dans le fichier, cat est inutile
read lastIP < ~/script/monip
ou, pour tirer partie des capacités de bash
lastIP=$(< ~/script/monip)
1