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 :

Utiliser system dans un if


Sujet :

Langage Perl

  1. #1
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Utiliser system dans un if
    Bonjour les gens,

    La question a peut être déjà été posée mais j'ai pas mon "pur perlien" sous la main.

    Y a t'il un moyen quelconque de passer system avec paramètre dans un if ?

    La requète (simplifiée) pour que ce soit plus clair :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system "/bin/cp", "-l", "/$chemin", "/temporaire/$chemin";
    /temporaire est créé avec un mkdir du même acabit juste avant et la façon classique avec la commande dans une chaîne de caractère ne marche pas.

    Vu que je veux avoir un return 1 en cas de réussite (je sais y a pas trop de risque que ça plante mais les c'est ce que demande le Big Boss) et que system renvoie 0 en cas de réussite j'ai besoin d'un if pour faire le test (le "or return 0" marche pas vu que le 0 que renvoie system est interprété comme faux).

  2. #2
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Citation Envoyé par Ninja_En_Short Voir le message
    le "or return 0" marche pas vu que le 0 que renvoie system est interprété comme faux
    Si je me souviens bien tu dois utiliser 'and' au lieu de 'or'.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system ... and return 0
    ainsi si system échoue, il renvoie 1 et tu passes à droite du and.

    Mais attends confirmation de quelqu'un d'autre.
    -- Jasmine --

  3. #3
    Membre actif

    Profil pro
    Inscrit en
    Août 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 156
    Points : 211
    Points
    211
    Par défaut
    A/ Ton boss a raison, quel que soit le programme et quel que soit sa simplicité, il y aura toujours un jour en production ou ton programme plantera pour une raison x ou y et là tu seras content d'avoir une sortie avec toutes les infos pour investiguer.

    B/ Une manière plus "propre" de programmer, est de sortir en cas d'erreur, et de laisser ton programme aller jusqu'à la fin en cas de succès.

    Si /tmp existe, mais que /tmp2 n'existe pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    system "ls /tmp >/dev/null" and die "error1: $!";
    # Sortie en cas de succès
    exit 0;
    => sortie "shell" 0 donc OK
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    system "ls /tmp2 >/dev/null" and die "error2: $!";
    # Sortie en cas de succès
    exit 0;
    => sortie shell à 2 donc Not OK.

    Il y a eu un débat récemment sur ce même forum:
    http://www.developpez.net/forums/d80...age/ca-marche/
    sur l'utilisation de $!, $? et de die() dans un programme.

Discussions similaires

  1. Utilisation de os.system() dans Blender
    Par volkukan dans le forum Général Python
    Réponses: 1
    Dernier message: 08/06/2009, 14h30
  2. [ODBC] Utilisation source systeme dans application
    Par GarsDuCalvados dans le forum VB.NET
    Réponses: 1
    Dernier message: 07/04/2009, 14h07
  3. [C] Utiliser system() dans un thread
    Par Jmtafam dans le forum Windows
    Réponses: 2
    Dernier message: 17/12/2007, 18h58
  4. Comment utiliser le compte SYSTEM dans un fichier .bat
    Par DiabloZizi dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 02/03/2006, 14h45
  5. [CR][VB6] comment utiliser CR dans VB ?
    Par kouassi_denis dans le forum SDK
    Réponses: 2
    Dernier message: 26/01/2004, 16h20

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