[shell] Fichier vide ou non (avec entete )
nouabi
Messages postés
146
Date d'inscription
Statut
Membre
Dernière intervention
-
dubcek Messages postés 18627 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18627 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Dans un script shell je voudrais tester si un fichier 'mail' est vide ou non sachant que le test [ -s /fichier ] ne marche pas (n'est jamais vide ce qui est faut)
Comment pourrais je faire cela ?
Je pensai fair, grâce a une commande, ouvrir le fichier, rentrer le contenu dans une variable puis testé la variable ?
non ?
Merci
--
Proverbe Chinois : Casser un cruche vide sur votre tête, si ça sonne creux, n'en déduisez pas seule
que c'est la cruche qui est vide ... :-D
Dans un script shell je voudrais tester si un fichier 'mail' est vide ou non sachant que le test [ -s /fichier ] ne marche pas (n'est jamais vide ce qui est faut)
Comment pourrais je faire cela ?
Je pensai fair, grâce a une commande, ouvrir le fichier, rentrer le contenu dans une variable puis testé la variable ?
non ?
Merci
--
Proverbe Chinois : Casser un cruche vide sur votre tête, si ça sonne creux, n'en déduisez pas seule
que c'est la cruche qui est vide ... :-D
Configuration: Linux Firefox 2.0.0.4
4 réponses
-
Un fichier vide est un fichier dont la taille est zéro. C'est bien test -s !
Que veux-tu tester ? Si un nouveau mail est arrivé ?
Pour placer le fichier dans une variable:
VAR=`cat /fichier`
-
Le probleme c'est que mon fichier vide fait toujour 1 octect.
Du coup, le test -s est toujour vrai !!
Comment peut on ouvrir un fichier en shell et comment peut ton copié la totalité de son contenu dans une variable (que nous testerons par la suite).
Merci d'avance -
En fait je veu alle cherche un fichier texte dans un serveur ftp (local : a l'arrive ), puis le renvoyer par mail dès qu'il arrive. Je fai tourner le script a l'aide de cron mais il m'envoie des mail vide !!!
Je veu arrete ca ... -
Pour placer le fichier dans une variable:
VAR=`cat /fichier`
pour que cron n'envoie pas de mails vides il faut rediriger toutes sorties: crontab :
..................... > /dev/null ou /path/cronlog 2>&1