[SHELL LINUX] Comparer deux variables

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 



3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    hello
    modifier cette ligne
    iplast=$(cat /home/xxx/script/monip)
    1. Contributeur
      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. 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)