Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1262 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [RESOLU] Comment tester si FIND renvoi quelques choses

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU] Comment tester si FIND renvoi quelques choses

n°226010
olicel
Posté le 19-02-2003 à 16:23:21  profilanswer
 

salut,
 
J'aimerais bien faire un  
SI("find -name *toto*" ne trouve rien)
ALORS ...
 
SINON ...
 
 
Comment faire ??
suis pas tres fort en script :D


Message édité par olicel le 27-02-2003 à 11:04:18

---------------
toujours un petit mot gentil:
mood
Publicité
Posté le 19-02-2003 à 16:23:21  profilanswer
 

n°226012
e_esprit
Posté le 19-02-2003 à 16:25:47  profilanswer
 

un chtit exemple :

find $CDROM -iname *.mpg -or -iname *.mpeg -or -iname *.avi -or -iname *.divx -or -iname *.asf -or -iname *.wmv -or -iname *.mov -or -iname *.dat > /tmp/video.pls
 
  # On verifie que la liste n'est pas vide parce que mplayer n'aime pas ca  # du tout du tout...
  grep \[:alnum:\] /tmp/video.pls > /dev/null
 
  if [ $? != 0 ]
  then
   echo "Aucun fichier video trouvé sur le media"
  else
   echo "Lancement de MPlayer"
   $MPLAYER -playlist /tmp/video.pls
  fi
   


Message édité par e_esprit le 19-02-2003 à 16:27:55
n°226019
olicel
Posté le 19-02-2003 à 16:32:16  profilanswer
 

la tu test $?
 
a koi correspond $?        ???


---------------
toujours un petit mot gentil:
n°226027
e_esprit
Posté le 19-02-2003 à 16:42:40  profilanswer
 

olicel a écrit :

la tu test $?
 
a koi correspond $?        ???


C'est la valeur de retour de la derniere commande executée
(ici le grep)

n°226028
Mjules
Modérateur
Parle dans le vide
Posté le 19-02-2003 à 16:43:35  profilanswer
 

le message de sortie du prog, habituellement 0 quand ya pas de pb et 1 (ou +) si il y a une erreur.
 
je fais la même chose pour mon script de sauvegarde ( cf mon site )


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°226033
olicel
Posté le 19-02-2003 à 16:46:40  profilanswer
 

ok merci  :jap:  
ca marche pour l'instant :D


---------------
toujours un petit mot gentil:
n°229674
olicel
Posté le 27-02-2003 à 09:11:02  profilanswer
 

bon les gars je reviens avec mon truc :D
 
voila ce que j'ai fait :

find $1 -name *.MP3 > test.txt
if ($? != 0 )
then
echo "trouve"
cat test.txt|mail -s "fichier MP3 trouve" admin@chmanosque.fr
else
echo "pas trouve"
 
fi
exit


 
Bon et bien sur si je suis ici c'est que ca ne marche pas.
LE test if($? !=0) retourne toujours dans la boucle else et m'affiche le message "pas trouvé". en plus il m'affiche ceci :

recherche_fichier: 0:command not found


recherche_fichier c'est le nom de mon script
 
olivier


---------------
toujours un petit mot gentil:
n°229684
e_esprit
Posté le 27-02-2003 à 09:24:48  profilanswer
 

et avec des '[' ']' a la place des '(' ';)' ???

n°229696
olicel
Posté le 27-02-2003 à 09:45:51  profilanswer
 

ben il me sort une erreur :  
recherche_fichier: [: missing ']'
 
 :(


---------------
toujours un petit mot gentil:
n°229698
e_esprit
Posté le 27-02-2003 à 09:47:37  profilanswer
 

Avec des espaces, cf. mon exemple plus haut.

mood
Publicité
Posté le 27-02-2003 à 09:47:37  profilanswer
 

n°229706
olicel
Posté le 27-02-2003 à 09:57:52  profilanswer
 

mon script maintenant
 

find $1 -name *.MP3
if [ $? != 0 ]
then
echo "trouve"
#cat test.txt|mail -s "fichier MP3 trouve" admin@chmanosque.fr
else
echo "pas trouve"
 
fi
exit


 
Bon la il me dit plus missing ] ... desole pour cette erreur debile :-(
 
PAr contre il ne rentre jamais dans ma boucle "trouve", alors que find me renvoi bien un fichier.
Mais si j'ai bien compris, on test la valeur retourner par find, mais comment savoir ce que find renvoi lorsqu'il trouve quelques choses ou ne toruve rien ??? j'ai cherche en man fin, mais rien sur ce sujet :-(
 
Je pourrais pas faire ca plutot ?  
 

find $1 -name *.MP3 > fichier.txt
if [ fichier.txt est pas vide ]
then
echo "trouve"
#cat test.txt|mail -s "fichier MP3 trouve" admin@chmanosque.fr
else
echo "pas trouve"
 
fi
exit


 
keskon mettrait alors dans le IF ?
 
olivier


---------------
toujours un petit mot gentil:
n°229715
Mjules
Modérateur
Parle dans le vide
Posté le 27-02-2003 à 10:08:48  profilanswer
 

man test
tu as plein de test différents dont entre autre celui du fichier vide.
 
en plus, tu peux les abréger :


if [ -e /dev/dvd ]; then exit 0  
else ln -s /dev/scd1 /dev/dvd
fi


 
correspond à : teste si le fichier /dev/dvd existe (équivalent à test -e )


Message édité par Mjules le 27-02-2003 à 10:09:14

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°229716
e_esprit
Posté le 27-02-2003 à 10:09:51  profilanswer
 

C'est parce que find ne renvoit rien je crois...
C'est pour ca que dans mon script je fait un grep, qui lui m'indique si le fichier est vide ou pas...

n°229718
e_esprit
Posté le 27-02-2003 à 10:13:24  profilanswer
 

Je confirme pour le retour du find, extrait du man :


       find  se  termine  avec  le  code  de retour 0 si tous les
       fichiers ont pu être examinés correctement, et supérieur à
       0 si une erreur s'est produite.


Message édité par e_esprit le 27-02-2003 à 10:13:39
n°229720
e_esprit
Posté le 27-02-2003 à 10:16:57  profilanswer
 

Au fait, utilise plutot 'find -iname' si tu veux pas t'emmerder avec la casse (*.mp3, *.MP3, etc.).
Ton script c'est pour verifier que tes utilisateurs ils telechargent pas trop de betises ? C'est ca ? ;)

n°229724
karoli
Posté le 27-02-2003 à 10:23:23  profilanswer
 

olicel a écrit :


Je pourrais pas faire ca plutot ?  
 

find $1 -name *.MP3 > fichier.txt
if [ fichier.txt est pas vide ]
then
echo "trouve"
#cat test.txt|mail -s "fichier MP3 trouve" admin@chmanosque.fr
else
echo "pas trouve"
 
fi
exit


 
keskon mettrait alors dans le IF ?
olivier


 
tu fais

if [ -s test.txt ]


qui te retourneras une erreur si ton fichier n'existe pas ou a une taille nulle

n°229742
olicel
Posté le 27-02-2003 à 10:59:55  profilanswer
 

ok merci a tous, ca marche nickel maintenant... mais j'ai encore beaucoup de chemin a faire avec les scripts...
 
Effectivement c'est pour verifier que mes users ne telecharge pas trop de betise, fichier MP3,AVI et MPG.
 
Mon linux sert de serveur de fichier ;-)
 
encore merci
 
olivier


---------------
toujours un petit mot gentil:
n°229777
philou_a7
\_o< coin ! >o_/
Posté le 27-02-2003 à 11:49:52  profilanswer
 

plutot que de passer par un fichier temporaire (ce qui n'est pas toujours possible, imagine que tu lance ton script dans un repertoire ou tu n'as pas les droits d'ecriture :D), tu peux aussi faire qqchose de ce style :

Code :
  1. NBFILE=`find . -name * | wc -l`
  2. if [ $NBFILE -gt 0 ]
  3. ...

n°229812
olicel
Posté le 27-02-2003 à 12:27:47  profilanswer
 

a oui c une solution aussi.  :whistle:
Mais niveau droit d'ecriture ... ca devrait aller :D


---------------
toujours un petit mot gentil:
n°229837
e_esprit
Posté le 27-02-2003 à 12:50:56  profilanswer
 

y a toujours /tmp !!!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [RESOLU] Comment tester si FIND renvoi quelques choses

 

Sujets relatifs
probleme curieux avec un script [RESOLU][Debian] gérer les daemon [résolu]
[newbie] installer X pour Radeon 7500 (résolu)Menu de fluxbox Grrrrrrr [resolu]
[RESOLU] Formatage de FAT32 a ext3 & Espace disque disponibleProbleme SAMBA avec clients W2k [ RESOLU ]
Restriction d'upload sous ProFTPd [Resolu a moitier]Question sur blackbox [resolu]
[MDK 9] Souris qui saccade qd il y a du débit sur le DD [Résolu][GENTOO] Xfree, GF4, no screen found => resolu
Plus de sujets relatifs à : [RESOLU] Comment tester si FIND renvoi quelques choses


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR