[shell]test la présence 1 mot dans un fichier

Résolu
stéphane -  
 Alia -
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
Configuration: Linux Mandriva
Firefox 2.0.0.8

1 réponse

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    grep 'mot_à_chercher' fichier
    retval=$?
    if [ "$retval" = 0 ]
    then echo "OK"
    else
    echo "NOK"
    fi
    ;-))
    20
    1. ilyass
       
      bonjour,
      Merci beaucoup
      est-ce-que je peux savoir qu'est-ce-que ca veut dire cette ligne
      retval=$?
      merci d'avance
      0
    2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      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 
      0
    3. JB
       
      une reponse de 2007 qui me sauve la vie en septembre 2014 !! :)
      0
    4. Charles
       
      Pareil pour moi en Septembre 2016.
      0
    5. grifit
       
      Tip top, many thanks !
      0