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

Programmation et administration système Perl Discussion :

Interactivité perl / shell


Sujet :

Programmation et administration système Perl

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Novembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Interactivité perl / shell
    Bonjour tout le monde,

    J'espère ne pas être passé à côté d'un post déjà crée

    J'ai un script shell permettant l'installation d'une appli sur mes serveurs.
    Le script shell demande la saisie de certaines informations au clavier et ne dispose pas de mode d'installation silencieuse.

    Par exemple :

    ./script.sh
    #Question1 (attente de réponse1)
    Réponse1
    #Question2 (attente de réponse2)
    ...

    Je voudrais lancer mon script shell depuis un autre script perl.
    Perl devrait :
    - analyser la chaîne en attente (Question1, Question2)
    - soumettre la réponse correspondante à la bonne question
    - se passer le plus possible d'expect

    Avez-vous une idée de comment capturer les STDOUT du script shell puis de le soumettre une réponse et ensuite de reprendre la lecture de SDTOUR puis de soumettre la réponse2, etc, etc, etc....?

    Je vous remercie par avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    Si j'ai bien compris ce que tu veux faire, je crains que ce ne soit pas possible (ou du moins pas du tout facile). Si tu lances ton script shell depuis un script Perl, Perl se mettra en attente de la fin du script shell (et pourra éventuellement traiter les données produites par le script shell (STDOUT), mais seulement quand le script shell sera achevé. A tout moment, un seul des deux scripts aura la main. Il faudrait donc, a priori, que tu saucissonnes le script shell en plusieurs morceaux, soit en le séparant en plusieurs fichiers, soit en y aménageant des plages distinctes appelables séparément et qui sortent du script en fin de plage.

    Peut-être serait-il judicieux de tout réécrire en Perl, avec des appels à des commandes shell quand c'est nécessaire. Ou alors insérer du code Perl en ligne à l'intérieur du script shell (ce que je fais régulièrement).

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Novembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Ok merci pour ta réponse.

    Il s'agit d'automatiser l'installation d'un RPM qui demande des chemins d'accès au répertoire d'installation, de log, etc... Le RPM est packagé pour ne pas permettre de passer ces infos en dur dans un fichier de conf ou en ajoutant des argument au lancement.

    Je vais essayer de creuser encore le sujet afin de trouver une solution.


    Merci en tout cas pour ton aide

  4. #4
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    Hum, en relisant ce post aujourd'hui, je me dis que je n'avais peut-être pas bien compris le besoin quand j'ai répondu hier soir. Et j'ai immédiatement une réponse qui me vient à l'esprit, Expect, sauf que tu dis vouloir t'en passer, si possible. Mais je me pose cependant une question: est-ce que tu veux te passer du produit Expect, le produit écrit en TCL qui existe depuis une bonne vingtaine d'années? Si oui, peut-être que le module Perl expect du CPAN (expect.pm) correspond à tes besoins. Je ne l'ai jamais essayé et ne peux donc rien en dire de plus que ce qu'il y a dans la documentation.

Discussions similaires

  1. aide script perl <=> shell
    Par euroscott dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 07/04/2010, 10h54
  2. editer variable globale (perl->shell)
    Par Matmal11 dans le forum Langage
    Réponses: 2
    Dernier message: 10/05/2007, 11h15
  3. Shell et perl problème d'interpolation de variable.
    Par Whaouu dans le forum Langage
    Réponses: 7
    Dernier message: 26/10/2005, 17h39
  4. redirection pipe process perl shell...
    Par r-valkien dans le forum Programmation et administration système
    Réponses: 10
    Dernier message: 11/08/2005, 00h19

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