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 :

inserer commande SHELL


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut inserer commande SHELL
    Bonjour,


    J'aimerais savoir comment incorporer des commandes SHELL dans du perl.

    J'ai essayé comme ceci sans résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    use Shell qw(export);
    my $exp1 = export "ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1";
    print $exp1;
    my $exp2 = export ("LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib");
    print $exp2;

    Merci beaucoup d'avance!

  2. #2
    Membre chevronné Avatar de iblis
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 59

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Par défaut
    Bonjour.

    Extrait de perldoc shell :
    This package is included as a show case, illustrating a few Perl features. It shouldn't be used for production programs.
    Utilise plutôt qx (ou les back-quotes, c'est pareil) ou system().

    D'un autre côté je ne suis pas sûr que cela soit le bon moyen de modifier des variables d'environnement (en fait, cela m'étonnerait que ça marche).

    Modifie plutôt %ENV.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ENV{PATH} = $ENV{PATH} . '/home/me/scripts';
    Le seul truc, c'est que le changement n'est probablement pas permanent (valable en dehors du script). Il me semble que le sujet a déjà été abordé sur le forum.

  3. #3
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut
    Citation Envoyé par iblis Voir le message
    Modifie plutôt %ENV.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ENV{PATH} = $ENV{PATH} . '/home/me/scripts';
    Le seul truc, c'est que le changement n'est probablement pas permanent (valable en dehors du script). Il me semble que le sujet a déjà été abordé sur le forum.

    Ca m'a l'air pas mal du tout pour ce que je soubaite faire => définir les varaibles d'environnement a chaque connexion ssh, je n'ai pas besoin que cela soit permanent.

    Par contre j'ai du mal a voir comment l'insérer dans mon code perl ?

  4. #4
    Membre chevronné Avatar de iblis
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 59

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Par défaut
    Citation Envoyé par Katachana Voir le message
    Par contre j'ai du mal a voir comment l'insérer dans mon code perl ?
    Tu peux l'insérer tel quel.

    %ENV est défini et contient les variables d'environnement d'exécution de ton script. Pour t'en rendre compte fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print map {"$_ -> $ENV{$_}\n"} sort keys %ENV

  5. #5
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut
    Merci beaucoup , ca marche tres bien , mais j'ai toujours un bug ....

    je m'explique :
    lorsque j'execute cette commande Shell :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
    mon script perl marche bien.

    Par contre lorsque que j'insere dans mon perl l'action ci dessus, pour atomatiser le processus, les variable d'environnement prennent bien le bon path, mais j'ai toujours un probleme.....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ENV{ORACLE_HOME}="/u01/app/oracle/product/10.2.0/db_1";
    $ENV{LD_LIBRARY_PATH}=$ENV{LD_LIBRARY_PATH}.":/u01/app/oracle/product/10.2.0/db_1/lib";

    Le fait de faire un export en SHELL entraine il plus d'action que le script perl ci dessus ??


    Merci d'avance!

  6. #6
    Membre chevronné Avatar de iblis
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 59

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Par défaut
    [Début idée bête]
    Peut être utilises-tu un module qui a déjà lu les variables d'environnement au moment où tu changes %ENV. (DBI ?)
    Si c'est le cas, il doit y avoir un moyen mais lequel...
    [Fin idée tout court]

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

Discussions similaires

  1. [Système]Execution d'une commande shell
    Par n8ken dans le forum API standards et tierces
    Réponses: 24
    Dernier message: 29/03/2007, 04h36
  2. []Commande shell
    Par phoenix736 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 09/10/2005, 20h31
  3. [Debutant] Commande shell
    Par drosophile dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 21/04/2005, 15h06
  4. commande shell dans un programme
    Par diefo dans le forum C
    Réponses: 3
    Dernier message: 15/08/2003, 13h37
  5. [VB6] comment savoir si la commande shell est terminée ?
    Par ghyscharlotte dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 30/07/2003, 19h12

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