Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > Mac
Mac Avant de poster: Lire La FAQ Mac; Voir la page Outils; Voir les tutoriels.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/09/2008, 15h48   #1
Membre du Club
 
Inscription : février 2008
Messages : 246
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 246
Points : 42
Points : 42
Par défaut récupérer valeur retourné find

Salut tout le monde, je voudrais récupérer la valeur de la commande find afin de choisir de faire un traitement
J'ai essayé avec le script suivant mais ça ne marche pas. Je crois que je manque qque choses
Code :
1
2
3
if [ find /Applications/Autonome/test.log = 0 ] ; then
   echo "file not found !"
fi
Thanks for your help.
Best regards
mercure07 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2008, 17h59   #2
Expert Confirmé
 
Homme
Inscription : septembre 2006
Messages : 2 293
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2006
Messages : 2 293
Points : 2 741
Points : 2 741
Citation:
Envoyé par mercure07 Voir le message
Salut tout le monde, je voudrais récupérer la valeur de la commande find afin de choisir de faire un traitement
J'ai essayé avec le script suivant mais ça ne marche pas. Je crois que je manque qque choses
Code :
1
2
3
if [ find /Applications/Autonome/test.log = 0 ] ; then
   echo "file not found !"
fi
Thanks for your help.
Best regards
il faut backquoter find /Applications/Autonome/test.log
Code :
1
2
`find /Applications/Autonome/test.log`
et find renvoit 0 quand il trouve quelque chose et 1 quand il ne trouve pas…
et = sert pour comparer des strings, c'est -eq pour des entiers…

mais pour tester l'existence d'un seul fichier : "test -e" ou "test -f"

Code :
1
2
3
4
5
if ! test -e "/Applications/Autonome/test.log"
then
   echo "file not found !"
fi

Code :
1
2
3
4
5
if ! test -f "/Applications/Autonome/test.log"
then
   echo "file not found or not a regular file (maybe a directory, a socket, …)!"
fi
JeitEmgie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2008, 12h29   #3
Membre du Club
 
Inscription : février 2008
Messages : 246
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 246
Points : 42
Points : 42
Je vous remercie pour votre réponse qui m'a bcp aidé.
J'ai encore une autre problème tjs dans ce sens.
J'ai un script à exécuter et je voudrais avoir la valeur de retour de chaque commande afin d'ecrire dans un fichier log les erreurs éventuelles.
Maintenant mon problème est de savoir si la copie s'est bien déroulé ou pas.
j'ai essayé :
Code :
1
2
3
4
5
if test 'cp /Autonome/ORDO.FDB /Applications/Test/' gt 0
then 
      echo "Erreur lors de la copie du fichier Odro.fdb">>install.log
fi
Mais j'ai l'erreur "Interger Expression expected". Bien que dans le man on indique bien que cp renvoi 0 si succés et 1 sinon.
Pourrez vous m'eclaircir comment dois je faire.
Merci encore de votre aide précieuse.
mercure07 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2008, 12h43   #4
Expert Confirmé Sénior
 
Homme Laurent Willems
Expert Stop/Start
Inscription : septembre 2002
Messages : 2 555
Détails du profil
Informations personnelles :
Nom : Homme Laurent Willems
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Expert Stop/Start

Informations forums :
Inscription : septembre 2002
Messages : 2 555
Points : 4 279
Points : 4 279
Salut,

Voci un lien qui pourrait t'aider.

http://okki666.free.fr/docmaster/articles/linux131.html
__________________
Alea Jacta Test!
Mygale1978 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2008, 14h30   #5
Membre du Club
 
Inscription : février 2008
Messages : 246
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 246
Points : 42
Points : 42
Merci de votre réponse, c'est vrai que le lien est utile et permet de détecter le code d'erreur mais il n'est trés utile dans mon cas vu que je veux avoir le code de retour de la commande juste apré son exécution.
J'ai essayé le script suivant qui exécute la commande de la copie, ensuite essai de récupérer la veleur de retour.
Code :
1
2
3
4
5
cp /Autonome/ORDO.FDB /Application/Test/  #le dossier n'exite pas pour provoquer une erreur
if test $? -gt 0 then
   echo "Erreur lors de la copie du fichier ORDO.FDB !">>/install.log
fi
Cela n'a pa fonctionné. Avez vous une suggestion sur ce problème.
Merci de votre collaboration
Cordialement
mercure07 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2008, 16h07   #6
Expert Confirmé
 
Homme
Inscription : septembre 2006
Messages : 2 293
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2006
Messages : 2 293
Points : 2 741
Points : 2 741
Citation:
Envoyé par mercure07 Voir le message
Merci de votre réponse, c'est vrai que le lien est utile et permet de détecter le code d'erreur mais il n'est trés utile dans mon cas vu que je veux avoir le code de retour de la commande juste apré son exécution.
J'ai essayé le script suivant qui exécute la commande de la copie, ensuite essai de récupérer la veleur de retour.
Code :
1
2
3
4
5
cp /Autonome/ORDO.FDB /Application/Test/  #le dossier n'exite pas pour provoquer une erreur
if test $? -gt 0 then
   echo "Erreur lors de la copie du fichier ORDO.FDB !">>/install.log
fi
Cela n'a pa fonctionné. Avez vous une suggestion sur ce problème.
Merci de votre collaboration
Cordialement
Code :
1
2
3
if test $? -gt 0 
then
ou
Code :
1
2
if test $? -gt 0 ; then
JeitEmgie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2008, 14h55   #7
Membre habitué
 
Inscription : mars 2008
Messages : 105
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mars 2008
Messages : 105
Points : 127
Points : 127
En règle générale, pour "attraper" la sortie d'une commande et la passer en arguments à une autre, on peut utiliser la commande xargs

ex :
$ find /chemin/ou/charcher/ -name * | xargs grep "chaine a chercher"

ici xargs va prendre la liste retournée par find et la passer a grep
genemartin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h33.


 
 
 
 
Partenaires

Hébergement Web