(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/>