Signaler

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

Posez votre question stéphane - Dernière réponse le 28 sept. 2016 à 15:22 par Charles
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
Utile
+17
plus moins
Salut,
grep 'mot_à_chercher' fichier
retval=$?
if [ "$retval" = 0 ]
then echo "OK"
else
echo "NOK"
fi
;-))
Cette réponse vous a-t-elle aidé ?  
ilyass- 7 déc. 2012 à 16:39
bonjour,
Merci beaucoup
est-ce-que je peux savoir qu'est-ce-que ca veut dire cette ligne
retval=$?
merci d'avance
zipe31 35040Messages postés dimanche 7 novembre 2010Date d'inscription ContributeurStatut 8 octobre 2017 Dernière intervention - 7 déc. 2012 à 17:10
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 
JB- 12 sept. 2014 à 12:05
une reponse de 2007 qui me sauve la vie en septembre 2014 !! :)
Charles- 28 sept. 2016 à 15:22
Pareil pour moi en Septembre 2016.

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !