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 :

Recuperer le code retour de system()


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 54
    Par défaut Recuperer le code retour de system()
    Bonjour

    Je cherche comment récupérer le code retour de system() que j'utilise pour executer des commandes dans mon script perl ainsi que pour inserer des données en base via sql loader.

    Donc le but est de recuperer le code retour pour relancer le traitement si jamais ça a planté.

    merci

  2. #2
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Août 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Août 2006
    Messages : 109
    Par défaut
    Bonjour

    Tu peux essayer avec $? tout simplement
    ou bien avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    @args=("commande","agr1","arg2");
    system(@args)==0 or die "system @args a echoue : $?";

  3. #3
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    system() renvoie le code de retour de la commande.

    --
    Jedaï

  4. #4
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 54
    Par défaut
    system() tout court me donne à chaque fois -1 que la fin soit normale ou pas .

  5. #5
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $code_retour = system( "cmd" );
    Ce code marche, si tu obtiens toujours -1, c'est que cmd ne s'est même pas exécutée, pour une raison quelconque (probablement une faute dans le nom du programme). Par ailleurs il est légèrement mensonger de dire que $code_retour est le retour de la commande quand elle est exécutée avec succès, en effet il s'agit plutôt du code de retour d'un wait() attendant pour le fils que system a créé, pour tous les détails, voir perlfunc (`perldoc -f system`).

    --
    Jedaï

Discussions similaires

  1. [Batch] Comment récupérer code retour system de mon .bat
    Par cyborg123 dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 12/11/2009, 10h43
  2. code retour abend system abend user
    Par offrerem dans le forum z/OS
    Réponses: 8
    Dernier message: 11/12/2008, 16h11
  3. Recuperer le code retour d'un script ANT en Java
    Par Tidav16 dans le forum ANT
    Réponses: 0
    Dernier message: 25/09/2008, 16h36
  4. tcpdump : recuperer code retour
    Par LFC dans le forum Langage
    Réponses: 0
    Dernier message: 08/01/2008, 12h16
  5. Récupérer le code retour d'un batch
    Par mick84m dans le forum Linux
    Réponses: 4
    Dernier message: 11/05/2005, 17h09

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