(Courriels de diversion: <chancre@appelles-recycleraient.com> <transcrirai@surgeles-rebiffa.com> <validerait@remmenez-concourant.com> <dissimuleriez@imaginerions-degouts.com> <viroles@gitane-usinera.com> <retraduisiez@constatent-sous-estimerez.com> <jouissions@reorganisez-jalonnez.com> <accentuez@subtile-etable.com> <mêlaient@annoterez-attenteront.com> <fronceriez@fermait-concentrent.com> )



C'est une histoire de guillemets pas fermés :
Il arrive à la fin du fichier avant d'avoir trouvé le guillemet fermant.

ça doit être :
 for fichier in $(awk '{ print $0 }' /etc/cleantab)
et non :
 for fichier in $(awk `{ print $0 }' /etc/cleantab)


Le ' doit être fermé par le même et sert à regrouper des caractères
contenant des espaces en un seul paramètres.
Le ` sert à passer en paramètre le résultat d'une commande, par ex :

aluminium:~$ vartoto=`echo 'Bonjour Titi' | sed s/i/o/g`
aluminium:~$ echo $vartoto
Bonjour Toto

Vincent

serge carrere écrit :
 > Bonjour, voici un petit problème que je ne maîtrise pas.
 > Je n'ai jamais appris de rpogrammation sur quoi que ce soit, donc, j'eesaie 
 > d'apprendre avec les exercices trouvés ça et là dans les magazines...
 > Donc, j'ai créé un petit programme shell comme indiqué dans un magazine pour 
 > éradiquer les fichiers log en trop et éviter qu'il ne saturent mes partitions.
 > L'exemple est pour faire un script shell qui se lance tous les mois et me 
 > vire les fichiers logs sélectionnés dans un fichier "/etc/cleantab" que j'ai 
 > défini. Ce script me permet en outre de ne garder que les 200 dernières 
 > lignes de chaque fichier log sélectionné.
 > J'ai écrit le script en suivant l'exemple donné, mais avant de l'installer 
 > dans mon "cron monthly", j'ai voulu le tester en tapant: ./cleaner (son nom) 
 > et là j'ai eu deux messages d'erreur:
 > le premier concerne la ligne 14
 > ./cleaner: line 14: unexpected EOF while looking for matching ",
 > Qu'est-ce que cela veut dire ? (pour moi c'est du chinois)
 > le second concerne la ligne 24
 > ./cleaner: line 24: syntax error: unexpected end of file
 > Or mon fichier ne comprends que 23 lignes ??
 > Voici maintenant le script:
 > -----------------------------------------------------------
 > #! /bin/bash
 > 
 > # d'abord s'assurer que la cleantab existe
 > if [ ! -e /etc/cleantab ]
 > then
 >        exit 0
 > fi
 > 
 > #créer un fichier temporaire qui servira de tampon
 > temporaire=$(mktemp /tmp/cleantemp.XXXXXX)
 > 
 > #lire chaque entrée dans la cleantab et conserver
 > #seulement les 200 dernières lignes de chaque fichier
 > for fichier in $(awk `{ print $0 }' /etc/cleantab)
 > do
 >         tail -lines=200 $fichier >$temporaire
 >         cat <$temporaire >$fichier
 > done
 > 
 > #effacer le fichier temporaire
 > rm -f $temporaire
 > 
 >  exit 0
 > -----------------------------------------------------------
 > Si une âme charitable pouvait m'expliquer ce qui se passe et m'indiquer le 
 > moyen de m'en sortir, merci d'avance.
 > A ciao, serge.
 > 
 > 
 > -- 
 > T'as le bonjour de LEO!
 > http://leoloden.citeweb.net/

---------------------------------------------------------------------
Aide sur la liste: <URL:mailto:linux-31-help@savage.iut-blagnac.fr>Le CULTe sur le web: <URL:http://www.CULTe.org/>