Probleme dans un script shell

smeagole123 -  
poumiZ Messages postés 103 Statut Membre -
bonjour,

g un script shell qui lit apartir d'un fichier texte et decoupe chaque ligne dans trois variable statiques
var1, var2, var3
et repete le meme traitement sur ces 3variables le nombre de ligne de ce fichier
tout marche bien sauf que si je lui rentre en argument un fichier qui depasse des centaines de lignes
il fait n'importe quoi.

merci pour votre aide
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  1. poumiZ Messages postés 103 Statut Membre 10
     
    il se présente comment ce script ?
    0
    1. smeagole123
       
      while read line

      do
      var1=
      var2=
      var3=


      traitement sur les trois variable
      ( lors de l'execuxion sa dure pas plus que 2 secondes )

      done<file
      0
  2. poumiZ Messages postés 103 Statut Membre 10
     
    tel que c'est écrit, je pense que tu ne dois pas récupérer grand chose dans tes variables.
    Ecris plutôt (si c'est ce que tu cherches):
    while read A B C
    
    do
    var1=$A
    var2=$B
    var3=$C
    
    
    traitement sur les trois variables
    ( lors de l'execuxion ça dure pas plus que 2 secondes )
    
    done<file
    0
    1. smeagole123
       
      bonjour,
      merci pour ton aide mais ce n'est pas sa mon probleme
      je recupere ce que je veu dans les trois variables

      le probleme principal c que lorsque je rentre en parametres un fichier de grande taille apres certaines itérations, sa marche pas convenablement sa donne des resultats innattendus

      je pense que il repete le mme process

      je pense qu'il faut allouer des variables dynamique
      par exemple

      vari
      varj
      vark
      et incrementer i, j et k a chaque iteration comme sa on aurai independance entre les variables

      mon probleme c que j'arrive pas a faire sa
      t'aurai une idée svp

      merci d'avance
      0
  3. poumiZ Messages postés 103 Statut Membre 10
     
    je veux bien t'aider, mais il va falloir être plus clair.
    Le problème se pose à la récup des varaibles? lors du traitement de ces variables? as-tu un exemple concret ?
    0
    1. smeagole123
       
      while read line

      do
      var1=`echo $line|cut -d";" -f1`
      var2=`echo $line|cut -d";" -f2`
      var3=`echo $line|cut -d";" -f3`
      /srv/webalizer/webalizer -dc /srv/$var1.$var2/$var3/stats/webalizer.conf
      chown webadmin:www /srv//$var1.$var2/$var3/stats/*

      done</srv/listeSites.csv

      sachant que le fichier listSites.csv est de grande taille plusque 1000 lignes
      donc le scipt va falloir faire le traitement sur ces variables le nbre de ligne

      pour les prmieres lignes g de bon resultats mai audela de la 100ieme ligne sa va pas

      voila
      0
  4. poumiZ Messages postés 103 Statut Membre 10
     
    peut-être le problème vient-il du fait que ton buffer sature lors de la lecture. Essaie ça:
    cat -u /srv/listeSites.csv |  while read line 
    ...
    done 

    Le "-u" permet de ne pas bufferiser la lecture. A voir ...
    0