IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

expect et plusieurs variable


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 105
    Points : 52
    Points
    52
    Par défaut expect et plusieurs variable
    Bonjour,

    J'ai un script qui est lancé par expect avec plusieurs variables.

    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
     
    ip=$1 login=$2 pass=$3 log=$4 nomliv=$5 script=$6 statut=$7
    /usr/bin/expect << EOF
     
    spawn telnet ${ip}
    expect "login:"
    send "${login}\r"
    expect "Password:"
    send "${pass}\r"
    expect "*#"
    spawn ./livraison.sh ${nomliv} ${script} ${statut} ${log} > ${log}
    expect "*#"
    send "exit"
    exit
    EOF
    Le problème est que je ne sais pas comment faire pour que la commande spawn interprète mes variables.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 105
    Points : 52
    Points
    52
    Par défaut
    J'ai contourné le problème en mettant une commande send :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    send "./livraison.sh ${nomliv} ${script} ${statut} ${log} > ${log}\r"

  3. #3
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Salut,

    Il faut définir les variables à l'intérieur même d'expect en fonction des arguments donnés sur la ligne de commande, avec une syntaxe propre à expect :



    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
    16
    17
    18
    19
    20
    21
    22
    23
    ip=$1 login=$2 pass=$3 log=$4 nomliv=$5 script=$6 statut=$7
    
    /usr/bin/expect $ip $login $pass $log $nmliv $script $status << EOF
    
    set ip [lindex $argv 0]
    set login [lindex $argv 1]
    set pass [lindex $argv 2]
    set log [lindex $argv 3]
    set nomliv [lindex $argv 4]
    set script [lindex $argv 5]
    set status [lindex $argv 6]
    
    spawn telnet ${ip}
    expect "login:"
    send "${login}\r"
    expect "Password:"
    send "${pass}\r"
    expect "*#"
    spawn ./livraison.sh ${nomliv} ${script} ${statut} ${log} > ${log}
    expect "*#"
    send "exit"
    exit
    EOF

    Un petit lien utile pour expect
    $ man woman
    Il n'y a pas de page de manuel pour woman.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Affecter la même valeur à plusieurs variables
    Par K20 dans le forum Langage
    Réponses: 7
    Dernier message: 03/01/2006, 23h54
  2. Plusieurs variables dans Dim et Case??
    Par samlepiratepaddy dans le forum Access
    Réponses: 2
    Dernier message: 02/10/2005, 18h04
  3. Envoyer plusieur variable a un programme
    Par scaleo dans le forum Langage
    Réponses: 9
    Dernier message: 06/09/2005, 11h09
  4. envoyer plusieurs variables dans l'url?
    Par brgui dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/08/2005, 14h18
  5. Réponses: 5
    Dernier message: 28/04/2004, 16h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo