Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/05/2012, à 21: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, à 05:23)


---------------
Si ou pa sav...mandé !

Hors ligne

#2 Le 02/05/2012, à 21: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, à 22:33

Takezo

Re : [astuce] vérifier l'état de sortie d'une commande (ex. find)

merci,
je lis, comprends et applique !  smile


---------------
Si ou pa sav...mandé !

Hors ligne

#4 Le 11/05/2012, à 05: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 : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#5 Le 16/05/2012, à 11: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, à 12: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, à 18: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 : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne