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

Langage Perl Discussion :

jouer un script cshell dans un script perl


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Technicien Layout
    Inscrit en
    Août 2015
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien Layout

    Informations forums :
    Inscription : Août 2015
    Messages : 275
    Par défaut jouer un script cshell dans un script perl
    Bonjour,

    je rencontre un petit pb lors de l’exécution de mon script du moins je n'ai pas le comportement attendu.

    Dans le flow de mon script en perl a un moment je fais appel a script cshell qui pose une question a l'utilisateur.

    PERL:
    ......code avt....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                            print $Tee "==================================================\n";	
    			print $Tee "Creation of archive file \n";
    			my $Archive_File = `Ewip_files -tegname ${TegName} -tegroot ${Dir}`;
    			print $Tee "$Archive_File \n";
    			print $Tee "==================================================\n";
    ....code après......

    le script cshell en question s'appel donc Ewip_files et dans ce script j’exécute entre autre cette commande.

    CSHELL:
    ......code avt.....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if ( $status == 0 ) then
    echo "Which xor.gds you want to save?"
    set answer=$< 
    cp ${tegroot}/calibre/xor/$answer 2>&1 /dev/null ./Ewip_${tegname}/.
    endif
    ......code après....

    Donc quand j’exécute mon script (sous unix) il affiche Creation of archive et il attend une réponse or je souhaiterais qu'il affiche sur la console après "création of archive" "Which xor.gds you want to save?" puis la réponse. Actuellement il écrit la phrase "Which xor.gds you want to save?" une fois que j'ai répondu.

    je ne sais pas si je suis assez clair dans mes propos.

    merci pour vos retours.

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    L'appel du script cshell est fait par perl qui capture la sortie standard pour te la restituer en retour de l'opérateur qx (alias de ``).
    Ainsi, tu ne vois pas les echo du script cshell sur la console.
    Si tu veux voir le résultat des echo sur la console, tu dois utiliser la commande system (mais dans ce cas, tu ne pourras pas récupérer le résultat de la console pour le mettre dans $Archive_File comme tu le fais ici.

    Après, je ne sais pas ce que fais ton script cshell, mais peut-être peux-tu envisager de le transposer dans ton script perl ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Technicien Layout
    Inscrit en
    Août 2015
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien Layout

    Informations forums :
    Inscription : Août 2015
    Messages : 275
    Par défaut
    Citation Envoyé par Philou67430 Voir le message
    L'appel du script cshell est fait par perl qui capture la sortie standard pour te la restituer en retour de l'opérateur qx (alias de ``).
    Ainsi, tu ne vois pas les echo du script cshell sur la console.
    Si tu veux voir le résultat des echo sur la console, tu dois utiliser la commande system (mais dans ce cas, tu ne pourras pas récupérer le résultat de la console pour le mettre dans $Archive_File comme tu le fais ici.

    Après, je ne sais pas ce que fais ton script cshell, mais peut-être peux-tu envisager de le transposer dans ton script perl ?
    Merci pour le retour, en faite je n'ai pas vraiment besoin d'afficher $Archive_File c'est une information annexe par contre je suiis réellement intéresse la commande system peux tu m'en dire un peux plus stp ?

    Je peux tenter l'exercice de transposer en perl mais cela va me prendre du temps car je suis vraiment débutant en perl.

  4. #4
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Et bien ...
    tu remplaces ces lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my $Archive_File = `Ewip_files -tegname ${TegName} -tegroot ${Dir}`;
    print $Tee "$Archive_File \n";
    par celles-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my $Archive_Exit_Value = system("Ewip_files -tegname ${TegName} -tegroot ${Dir}");
    print $Tee "Ewip returned value : $Archive_Exit_Value\n";

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/05/2014, 14h49
  2. script SQL dans un script SQL
    Par baime dans le forum Développement
    Réponses: 0
    Dernier message: 27/02/2014, 15h52
  3. Exécuter script ColdFusion dans un script PHP
    Par horizonlibre dans le forum Coldfusion
    Réponses: 3
    Dernier message: 12/05/2009, 15h04
  4. Inclure un script Ant dans un script Ant
    Par Rémy29 dans le forum ANT
    Réponses: 2
    Dernier message: 03/08/2007, 09h46
  5. [perl/CGI] Ecrire du HTML dans un script perl
    Par LE NEINDRE dans le forum Web
    Réponses: 3
    Dernier message: 02/08/2005, 14h50

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