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