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

Shell et commandes GNU Discussion :

Boucle infini sur Cat


Sujet :

Shell et commandes GNU

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Décembre 2012
    Messages : 43
    Points : 91
    Points
    91
    Par défaut Boucle infini sur Cat
    Bonjour à tous,

    j'ai rencontré un problème assez bizarre il y a quelques jour avec la fonction 'cat'.
    Mon script est pourtant relativement simple. Voici une version simplifié du code (sans les if et else):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    reportFilePrint=${JOB_DIR_out_env}/report/Print_Report_All.txt
    reportFilePrintNormal=${JOB_DIR_out_env}/report/Print_Report.txt
    reportFilePrintSplit=${JOB_DIR_out_env}/report/Print_Report_Split.txt
     
    touch ${reportFilePrint}
    touch ${reportFilePrintNormal}
    touch ${reportFilePrintSplit}
     
    cat ${JOB_DIR_out_env}/report/Print_Report* > ${reportFilePrint} 2>&1
    Le répertoire courant contient au moins un fichier Print_Report_qqch.txt

    Mon problème : le cat semble boucler infiniment. Le script tourne sans s'arrêter jusqu'à ce que le fichier de sortie atteigne la taille maximale admissible, soit environ 2Go, alors qu'il ne devrait en faire que quelques dixaines de Ko.
    Forcément, le temps de création est affreusement long et s'accapare les ressources de la machine, mais en plus le fichier produit doit encore être relu plus tard dans le script par un programme perl pour traitement. Je vous laisse imaginer la charge mémoire que cela engendre car le script perl mets les données du fichier dans un hash...

    Ma solution a été de renommer le fichier de sortie et de supprimer le 'touch' mais j'aimerais bien savoir pourquoi j'ai eu ce problème.

    Pour finir le pavé, ce problème n'est apparu que pendant les tests utilisateurs et je n'ai pas réussi à le reproduire sur la machine de dev..

    Donc si quelqu'un a une expliqcation, je suis preneur.
    Saaaaluuut Nounou!!

  2. #2
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 266
    Points : 12 681
    Points
    12 681
    Par défaut
    Bonjour,

    Déplace ton fichier de destination dans un autre répertoire ou change son nom pour qu'il ne fasse pas partie des fichiers sources
    Cordialement.

Discussions similaires

  1. [AC-2003] Boucle Infinie sur RecordSet
    Par aminnio dans le forum VBA Access
    Réponses: 4
    Dernier message: 28/06/2013, 11h55
  2. [XL-2010] Boucle infinie sur macro
    Par Excel_man dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 20/02/2013, 19h07
  3. boucle infinie sur remplissage du rapport
    Par couetbis dans le forum Jasper
    Réponses: 5
    Dernier message: 15/08/2010, 08h39
  4. Boucle infinie et focus sur un contrôle.
    Par FadeOut dans le forum C#
    Réponses: 3
    Dernier message: 14/09/2008, 18h20

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