#1 Le 02/05/2012, à 20:04
- Takezo
[astuce] vérifier l'état de sortie d'une commande (ex. find)
Bonjour à tous,
find -mmin +5 -iname "test.log"
la commande me renvoie le nom du fichier si il est plus "vieux" de 5 minutes
j'aimerai trouver la commande qui me permettrait de récupérer la sortie de find et de dire "si find affiche le fichier log.test renvoyer vrai et si vrai lancer la commande (ça c'est bon)
merci
edit modo : titre plus explicite
Dernière modification par nesthib (Le 11/05/2012, à 04:23)
---------------
Si ou pa sav...mandé !
Hors ligne
#2 Le 02/05/2012, à 20:36
- Spitfire 95
Re : [astuce] vérifier l'état de sortie d'une commande (ex. find)
res=$(find -mmin +5 -iname "test.log")
if [ $res ]; then
return 1
else
return 0
fi
Trisquel GNU/Linux 6.0 / Fedora 19 & rawhide.
joueur ryzom et wesnoth
Développeur livewallpaper
Membre déserteur et traître de la brigade des S.
Hors ligne
#3 Le 02/05/2012, à 21:33
- Takezo
Re : [astuce] vérifier l'état de sortie d'une commande (ex. find)
merci,
je lis, comprends et applique !
---------------
Si ou pa sav...mandé !
Hors ligne
#4 Le 11/05/2012, à 04:21
- nesthib
Re : [astuce] vérifier l'état de sortie d'une commande (ex. find)
Inutile de faire tout ça… les commandes envoient des codes de retour pour signifier l'état avec lequel elles se sont terminées. 0 pour un succès 1 ou plus pour un échec (d'ailleurs c'est ce code que tu crées avec ton return Spitfire 95). Ce code est accessible soit via la variable $?, soit avec les opérateurs de test.
Par exemple :
if find -mmin +5 -iname "test.log";
then
echo 'fichier de moins de 5min trouvé'
else
echo 'fichier non trouvé'
fi
ou encore :
find -mmin +5 -iname "test.log" && echo 'fichier de moins de 5min trouvé' || echo 'fichier non trouvé'
ps. attention en postant la prochaine fois car la section n'est pas adaptée, Trucs et Astuces et fait pour apporter des trucs et astuces, pas pour poser des questions…
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#5 Le 16/05/2012, à 10:32
- Totor
Re : [astuce] vérifier l'état de sortie d'une commande (ex. find)
J'apporte une précision à la réponse de nesthib : En régle général oui, 0 si ok et 1 si pas ok mais find retourne 0 s'il se termine correctement, qu'il ait trouvé ou pas ce qu'on lui a demander de chercher.
Il faut donc vérifier ce qu'il retourne.
-- Lucid Lynx --
Hors ligne
#6 Le 16/05/2012, à 11:40
- Spitfire 95
Re : [astuce] vérifier l'état de sortie d'une commande (ex. find)
Pour être encore plus précis, en général 0 pour sortie normale, et différent de zéro (positif ou négatif) pour une erreur (enfin pas forcément, dans le cas d'une comparaison avec strcpy par exemple ce sera pas une erreur, mais -1 ou +1 si les chaînes sont différentes, en fonction de leur classement alphabetique).
Trisquel GNU/Linux 6.0 / Fedora 19 & rawhide.
joueur ryzom et wesnoth
Développeur livewallpaper
Membre déserteur et traître de la brigade des S.
Hors ligne
#7 Le 18/05/2012, à 17:59
- nesthib
Re : [astuce] vérifier l'état de sortie d'une commande (ex. find)
effectivement, mea culpa, j'avais oublié ce traitement spécial de la part de find
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne