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 :

Faire de l'expect à travers une fonction passée à distance en ssh


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 158
    Par défaut Faire de l'expect à travers une fonction passée à distance en ssh
    Bonjour,

    je souhaite exécuter à distance une fonction qui fait de l'expect.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    fonction()
    {
     
    #!/usr/bin/expect
    expect "hi"
    send "hello there!\n"
     
    }
     
     
     
    echo -e "(declare -f fonction); fonction" | ssh $USR@$SRV 'bash -s'

    mon code en expect fonctionne bien sur la machine cible lorsque exécute dans un script.
    Par contre ca ne fonctionne pas lorsque executé au sein d'une fonction depuis une machine distant comme dans l'exemple ci dessus.
    Savez vous comment je peux réaliser cela?

    merci pour votre aide.

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 664
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    Bonjour,

    Savez vous comment je peux réaliser cela?
    en lisant un tutoriel sérieux sur l'écriture de script shell (tel que celui qui apparaît dans ma signature, ou le bash beginner guide sur tldp.org, ou l'ABS (toujours sur tldp.org)), parce que, là, c'est du grand n'importe quoi :
    • une fonction n'est pas un script : elle ne peut pas contenir de shebang
    • une fonction n'est pas une variable : elle n'est pas appelée avec un $
    • il faut distinguer un sous-interpréteur d'une substitution de commandes
    • ...
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 158
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [*]une fonction n'est pas un script : elle ne peut pas contenir de shebang
    oui je sais j'avais bien vu qu'il y avait un problème mais j'avais essayé quand même mal m'en a pris!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [*]une fonction n'est pas une variable : elle n'est pas appelée avec un $
    désolé je mets à jour le poste j'ai effectivement une erreur dans le code

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 158
    Par défaut
    Je suis toujorus bloqué
    Comment est ce que je peux executer du code expect à distance via ssh?
    Je bute sur le problème qui est que je ne peux pas en ssh déclarer /usr/bin/expect via un shebang...
    Du coup mes commandes expect ne sont pas reconnues lorsqu'elles sont exécutées sur la machine distante.

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 664
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    je ne fais pas d'expect, mais je suppose que ça peut prendre des commandes en entrées avec un document en ligne (here-doc) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    maFonction () {
     
    expect <<eof
       commandeExpect1
       commandeExpect2
    eof
    }
    ...
    ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 158
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    je ne fais pas d'expect, mais je suppose que ça peut prendre des commandes en entrées avec un document en ligne (here-doc) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    maFonction () {
     
    expect <<eof
       commandeExpect1
       commandeExpect2
    eof
    }
    ...
    ?
    merci

Discussions similaires

  1. Limiter la lecture d'une animation flash a travers une fonction javascript
    Par souminet dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/01/2010, 15h41
  2. [Toutes versions] Faire renvoyer un tableau par une fonction
    Par Wanaka dans le forum Excel
    Réponses: 5
    Dernier message: 01/07/2009, 21h49
  3. [Perl/Tk] problème pour faire passer des variables vers une fonction
    Par seben dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 09/03/2009, 15h17
  4. Passage d'arguments à travers une fonction
    Par win-pierre dans le forum C
    Réponses: 4
    Dernier message: 01/05/2008, 13h29
  5. passage de paramètre à une fonction passée en paramètre
    Par bambou dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 03/08/2007, 10h39

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