[shell] variables

Résolu
Hello all

juste un petite question
a la réalisation d'un script je me retrouve a utiliser cette commande
lynx --source http://www.monip.org | sed -nre 's/^.* (([0-9]{1,3}\.){3}[0-9]{1,3}).*$/\1/p'

commande que j'ai pris ici shell recuperer son ip publique

le truc c'est que j'aimerais insérer le résultat donc @IP dans une variable (IP pas ex) de façon a pouvoir la resortir plus tard dans le script.
j'ai essayé un bête
ip=lynx --source http://www.monip.org | sed -nre 's/^.* (([0-9]{1,3}\.){3}[0-9]{1,3}).*$/\1/p'

puis 

$ip pour afficher 
 

mais ça marche pas....

si quelqu'un a une idée !!!

Merci a vous
--
Computers are like air conditioners.
They don't work when you open Windows.

6 réponses

  1. Modérateur
    Salut,

    pour avoir le résultat d'une commande dans une variable on utilse ou var=$(command) ou var=r `command`

    lami20j
    1. Modérateur
      Pour corriger lami20j ;)

      au lieu de var=r `command`

      lire var=`command`
  2. quand je fait
    ip=lynx --source http://www.monip.org | sed -nre 's/^.* (([0-9]{1,3}\.){3}[0-9]{1,3}).*$/\1/p'
    

    ou ip est ma variable

    il me dit que ip n'est pas un reconnu comme un programme ...
    je n'ai plus le essage exacte... suis plus chez moi
    1. Modérateur
      Re,

      essaie
      ip=$(lynx --source http://www.monip.org | sed -nre 's/^.* (([0-9]{1,3}\.){3}[0-9]{1,3}).*$/\1/p')
      Peut être je dit des bêtises, je ne suis pas sous linux maintenant donc je n'ai pas vérifier ce que j'ai dit.

      lami20j
  3. Modérateur
    Comme lami20j l'a expliqué, tu effectues ceci
    johan@johan:~$ ip=$(links -source http://www.monip.org | sed -nre 's/^.* (([0-9]{1,3}\.){3}[0-9]{1,3}).*$/\1/p')
    johan@johan:~$ echo $ip
    XXX.XXX.XXX.XXX
    
    johan@johan:~$ #(j'utilise links , mais avec lynx c'est kif-kif je suppose. Ici j'ai l'option -source, sous lynx je suppose que c'est --source)
    johan@johan:~$
    

    Johan
    1. je vais essayer ça ce soir merci les mecs... je vous tiens au jus
      1. Modérateur
        Salut,

        Tu peux aussi passer par un "alias" :
        alias IP="lynx --source http://www.monip.org | sed -nre 's/^.* (([0-9]{1,3}\.){3}[0-9]{1,3}).*$/\1/p'"
        et ainsi appelé ta "pseudo" commande sans faire appel à "echo", simplement en tapant :
        IP
        ;-))
        1. OK
          problème résolu avec

          johan@johan:~$ ip=$(links -source http://www.monip.org | sed -nre 's/^.* (([0-9]{1,3}\.){3}[0-9]{1,3}).*$/\1/p')
          
          johan@johan:~$ echo $ip
          XXX.XXX.XXX.XXX
          


          Un grand merci a vous tous