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] mettre un timeout infini à un moment spécifique d’un script


Sujet :

Shell et commandes GNU

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2020
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2020
    Messages : 41
    Points : 75
    Points
    75
    Par défaut [Expect] mettre un timeout infini à un moment spécifique d’un script
    Salut tout le monde !

    J’ai programmé un script Except qui effectue 2 connexions ssh successives sur des ordinateurs puis une connexion picocom sur un système embarqué.

    Voici de quoi a l’air le script en gros :


    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
    #!/usr/bin/expect
     
    set timeout 3
     
    spawn ./code_pour_se_connecter_au_1er_ordinateur.sh
     
    expect "LOG SPÉCIFIQUE AU 1ER ORDINATEUR"
     
    send -- "ssh ADRESSE_DU_2ÈME_ORDINATEUR"
     
    expect "enter password"
     
    send -- "MOT_DE_PASSE"
     
    send -- "picocom SYSTÈME_EMBARQUÉ"
     
    expect "enter password"
     
    send -- "MOT_DE_PASSE"


    Mon problème est qu’une fois que je suis connecté au système embarqué, le timeout du script s’arrête et je suis totalement déconnecté et ramené à la case départ.

    Est-ce que quelqu’un ici connaîtrait un moyen de me faire rester sur le système embarqué ? en mettant une sorte de boucle infinie par exemple.

    Une bonne solution serait de mettre le timeout à -1 pour que le timeout soit infini. Sauf que malheureusement, comme je ne sais pas très bien coder avec Except mon script actuel s’arrête à la ligne send -- "picocom EMBEDDED_SYSTEM" car il attend probablement quelque chose mais je ne sais pas quoi…

    Quelqu’un aurait une solution ?

    Merci d’avance !

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 377
    Points
    19 377
    Par défaut
    Bonjour,

    je ne pratique pas expect. est-ce qu'on peut "unset" une variable (ici timeout) ?

    edit : il semble que oui.
    est-ce que ça résoudra ton souci ?...
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. Réponses: 8
    Dernier message: 17/05/2013, 01h23
  2. Réponses: 2
    Dernier message: 04/06/2009, 17h58
  3. [TSQLQuery] Comment mettre un TimeOut ?
    Par WebPac dans le forum Bases de données
    Réponses: 19
    Dernier message: 06/06/2006, 16h33
  4. Réponses: 2
    Dernier message: 05/05/2006, 13h29
  5. Comment mettre plusieurs objets ds un composant ?
    Par Fleury dans le forum Composants VCL
    Réponses: 7
    Dernier message: 24/05/2003, 17h34

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