Menu

[shell]test la présence 1 mot dans un fichier [Résolu/Fermé]

- - Dernière réponse :  Greg - 13 mai 2019 à 17:01
Bonjour,

Je cherche en shell a tester la présence d'un mot dans un fichier pour si cela est positif demarrer une commande et si cela est négatif en demarrer une autre.

Et je suis un peu perdu.

Je vous demande donc un peu d'aide ou eventuellement une voie sur laquelle je peux m'engager.

Merci pour votre aide

lonewolf
Afficher la suite 

1 réponse

Meilleure réponse
Messages postés
43478
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
17 mars 2018
4495
20
Merci
Salut,
grep 'mot_à_chercher' fichier
retval=$?
if [ "$retval" = 0 ]
then echo "OK"
else
echo "NOK"
fi
;-))

Dire « Merci » 20

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 39360 internautes nous ont dit merci ce mois-ci

zipe31
Messages postés
36527
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
22 mai 2019
3546 -
Salut,

La variable $? contient le code retour (0 = vrai et 1 = faux) de la dernière commande lancée, ce qui implique qu'à chaque commande lancée, la valeur de cette variable change.

Donc ici, on récupère la valeur de ce code retour que l'on stocke dans une variable appelée "retval" (contraction de return value) afin de pouvoir l'utiliser plus loin.

Comme le code retour de la commande est testé de suite après, on aurait très bien pu écrire :

grep 'mot_à_chercher' fichier
if [ "$?l" = 0 ]
then echo "OK"
else
echo "NOK"
fi 
une reponse de 2007 qui me sauve la vie en septembre 2014 !! :)
Pareil pour moi en Septembre 2016.
Tip top, many thanks !