[HS] - Script

Le
Nahliel Steinberg
Bonjour,

Je dois ecrire un script qui test si des fichiers sont vides ou pas.

(ça je vois comment faire le test, deplus j'en ai pas beaucoup que 8 à tester)


En suite ce script doit les copiers à un endroit mais seulement si il n'y en a aucun
qui est vide. si j'en ai au moins un de vide je ne fais rien.

Et là je seche.

--
Nahliel

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/20111102093752.GA14424@srvdebian.info-cr.fr
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Julien Valroff
Le #23928701
Le mercredi 02 nov. 2011 à 10:37:52 (+0100 CET), Nahliel Steinberg a écrit :
Bonjour,

Je dois ecrire un script qui test si des fichiers sont vides ou pas.



Quel language ? Je présume en shell script d'après l'utilisation ?

(ça je vois comment faire le test, deplus j'en ai pas beaucoup que 8 à tester)



[ -s fichier ] && echo "Fichier non vide"
(man test)

En suite ce script doit les copiers à un endroit mais seulement si il n'y en a aucun
qui est vide. si j'en ai au moins un de vide je ne fais rien.



Il te suffit par exemple d'initialiser une variable à 0 en début de script,
incrémentée à chaque fois qu'un fichier vide est trouvé (en bouclant sur la
liste des fichiers). Si à la suite de la boucle la variable est > 0, alors
tu ne fais rien, sinon tu copies les fichiers.

Julien

--
.''`. Julien Valroff ~ : :' : Debian Developer & Free software contributor
`. `'` http://www.kirya.net/
`- 4096R/ E1D8 5796 8214 4687 E416 948C 859F EF67 258E 26B1

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Grégory Bulot
Le #23928711
Bonjour, Bonsoir,

Le Wed, 2 Nov 2011 10:37:52 +0100, Nahliel Steinberg, vous avez écrit :

Bonjour,

Je dois ecrire un script qui test si des fichiers sont vides ou pas.

(ça je vois comment faire le test, deplus j'en ai pas beaucoup que 8
à tester)


En suite ce script doit les copiers à un endroit mais seulement si il
n'y en a aucun qui est vide. si j'en ai au moins un de vide je ne
fais rien.

Et là je seche.




LesFichiers=""
[debut de ma boucle]
if [ -s $MonFichier ];
then
break ou exit 0
fi
LesFichiers=$LesFichiers" "$MonFichier
[fin de ma boucle]
#si on arrive ici c'est qu'il n'y a pas de fichiers vide
cp $LesFichiers MaDestination


mais je suis pas sur d'avoir bien compris




--
Cordialement
Grégory BULOT

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Nahliel Steinberg
Le #23928771
Quel language ? Je présume en shell script d'après l'utilisation ?



Tu présume bien ;-)

[ -s fichier ] && echo "Fichier non vide"



Oui ça je sais faire mais pour un fichier

Il te suffit par exemple d'initialiser une variable à 0 en début de script,
incrémentée à chaque fois qu'un fichier vide est trouvé (en bouclant sur la
liste des fichiers). Si à la suite de la boucle la variable est > 0, alors
tu ne fais rien, sinon tu copies les fichiers.



Heuuuu.... ;-)


--
Nahliel

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Nahliel Steinberg
Le #23928761
LesFichiers=""
[debut de ma boucle]
if [ -s $MonFichier ];
then
break ou exit 0
fi
LesFichiers=$LesFichiers" "$MonFichier
[fin de ma boucle]
#si on arrive ici c'est qu'il n'y a pas de fichiers vide
cp $LesFichiers MaDestination





Je dois lister 8 fichiers dans un repertoire, si au moins un fichier est vide je ne les copie pas.

Si je comprends bien il faudrait que j'écrive :


myfiles="toto.txt titi.txt tata.txt tonton.txt toto2.txt titi2.txt tata2.txt tonton2.txt"

if [ -s $fileresult ];

then

envoi mail car pas ok

fi

myfiles=$myfiles" "$filesresult



--
Nahliel

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Jean-Yves F. Barbier
Le #23928841
On Wed, 2 Nov 2011 11:19:08 +0100
Nahliel Steinberg
myfiles="toto.txt titi.txt tata.txt tonton.txt toto2.txt titi2.txt tata2.txt tonton2.txt"
if [ -s $fileresult ]; then
envoi mail car pas ok
fi



en dehors de la boucle??

myfiles=$myfiles" "$filesresult



--
A free society is one where it is safe to be unpopular.
-- Adlai Stevenson

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
David Dumortier
Le #23928851
Bonjour,

Le mer. nov. 02 2011 � 11:12:09 +0100, Nahliel Steinberg dit :
>Quel language ? Je présume en shell script d'après l'utilisation ?

Tu présume bien ;-)

>[ -s fichier ] && echo "Fichier non vide"

Oui ça je sais faire mais pour un fichier

>Il te suffit par exemple d'initialiser une variable à 0 en début de script,
>incrémentée à chaque fois qu'un fichier vide est trouvé (en bouclant sur la
>liste des fichiers). Si à la suite de la boucle la variable est > 0, alors
>tu ne fais rien, sinon tu copies les fichiers.

Heuuuu.... ;-)



Voir man test :
- -a qui est un et logique et -not qui est une negation logique
- -o qui est un ou logique

--
Nahliel



--
David Dumortier

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Nahliel Steinberg
Le #23928881
Le 02/11/11 at 11:33, Jean-Yves F. Barbier a ecrit:
On Wed, 2 Nov 2011 11:19:08 +0100
Nahliel Steinberg
myfiles="toto.txt titi.txt tata.txt tonton.txt toto2.txt titi2.txt tata2.txt tonton2.txt"
if [ -s $fileresult ]; then
envoi mail car pas ok
fi



en dehors de la boucle??

myfiles=$myfiles" "$filesresult





Oui c'est ce que m'à indiqué Gregory dans son exemple.

--
Nahliel

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Grégory Bulot
Le #23928891
Bonjour, Bonsoir,

Je reprends , en modifiant
(j'ai pas optimisé la condition pour lisibilité sinon c'est plus court
avec :
[ -s "fileresult" ] && echo "fichier pas vide" || echo "fichier
vide"
)



#!/bin/bash
LesFichiers=""
myfiles="toto.txt titi.txt tata.txt tonton.txt toto2.txt titi2.txt
tata2.txt tonton2.txt"
for $fileresult in $myfiles
#si tout se trouve dans le même répertoire :
#for $fileresult in [MonRepertoireSource]/*
do
if [ -s $MonFichier ];
then
echo "Au moins un fichier à une taille null" |
mail -s "Compte rendu de traitement."
exit 0 #0 pour éviter à cron d'envoyer son message d'erreur
standard
fi
LesFichiers=$LesFichiers" "$MonFichier
done
#si on arrive ici c'est qu'il n'y a pas de fichiers vide
cp $LesFichiers [MonRépertoireDeDestination]

--
Cordialement
Grégory BULOT

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Grégory Bulot
Le #23928901
Bonjour, Bonsoir,

Le Wed, 2 Nov 2011 11:44:00 +0100, Grégory Bulot, vous avez écrit :

MonFichier



s%/MonFichier/fileresult/g

--
Cordialement
Grégory BULOT

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Nahliel Steinberg
Le #23928871
Merci beaucoup pour ton aide Gregory.

J'ai donc réecrit le script en suivant test conseils, mais j'ai cette erreur

./testficvide.sh: line 10: `$FILESRESULT': not a valid identifier
on peut copier les fichiers



Voici ce que j'ai réecrit propre en suivant tes derniers mails.



myfiles="toto.txt titi.txt tata.txt tonton.txt toto2.txt titi2.txt"
for $FILESRESULT in [/app/crunch/temp]/*
do
if [ -s $FILESRESULT ];
then
echo "Au moins un fichier à une taille null" |
mail -s "Compte rendu de traitement."
exit 0 #0 pour éviter à cron d'envoyer son message d'erreur
standard

fi
MYFILES=$MYFILES" "$FILESRESULT
done

echo "on peut copier les fichiers"

(j'ai mis un echo pour ne pas faire la copie tout de suite)





--
Nahliel

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Publicité
Poster une réponse
Anonyme