Probleme dans un script shell

Fermé
smeagole123 - 5 juil. 2007 à 09:06
poumiZ Messages postés 102 Date d'inscription mercredi 6 juin 2007 Statut Membre Dernière intervention 3 septembre 2010 - 6 juil. 2007 à 11:32
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
A voir également:

4 réponses

poumiZ Messages postés 102 Date d'inscription mercredi 6 juin 2007 Statut Membre Dernière intervention 3 septembre 2010 10
5 juil. 2007 à 09:27
il se présente comment ce script ?
0
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
poumiZ Messages postés 102 Date d'inscription mercredi 6 juin 2007 Statut Membre Dernière intervention 3 septembre 2010 10
5 juil. 2007 à 09:50
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
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
poumiZ Messages postés 102 Date d'inscription mercredi 6 juin 2007 Statut Membre Dernière intervention 3 septembre 2010 10
6 juil. 2007 à 10:20
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
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
poumiZ Messages postés 102 Date d'inscription mercredi 6 juin 2007 Statut Membre Dernière intervention 3 septembre 2010 10
6 juil. 2007 à 11:32
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