[Script] Besoin d'aide pour grep et test

Autres projets et contributions
booga
Hankyu
Messages : 39
Inscription : dim. 13 nov. 2011, 19:52

[Script] Besoin d'aide pour grep et test

Message par booga » mar. 11 déc. 2018, 15:18

Bonjour,

J'ai besoin de tester la présence de 2 mots dans un fichier.
S'il s’avère que ces 2 mots sont présents alors le script doit retourner un message ainsi qu'un exit code.
$1 : 1er mot
$2 : 2e mot
$3 : chemin du fichier

Code : Tout sélectionner

grep -qiE '"$1"|"$2"' "$3"

if [ $? == 0 ]

then
        echo "Erreur dans le fichier de log"
        exit 2
else
        echo "Pas d'erreur dans le fichier de log"
        exit 0
fi
Le problème est que j'ai constamment le message m'indiquant qu'il n' y a pas d'erreur même avec des paramètres fantaisistes (ou pas) :

Code : Tout sélectionner

./grep gfjhgfjhfh hjhlklkhjkjhkj /var/log/a.txt
Pas d'erreur dans le fichier de log

La valeur retournée par grep quand il y a une correspondance est bien 0 ?

Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10508
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [Script] Besoin d'aide pour grep et test

Message par FoolEcho » mar. 11 déc. 2018, 16:00

Salut,

Ce sont les apostrophes qui te mettent dedans. Egrep ne va pas interpréter les valeurs de tes paramètres $1 et S2. Donc plutôt:

Code : Tout sélectionner

grep -qiE "($1|$2)" "$3"
«The following statement is not true. The previous statement is true.» :nage:

booga
Hankyu
Messages : 39
Inscription : dim. 13 nov. 2011, 19:52

Re: [Script] Besoin d'aide pour grep et test

Message par booga » mar. 11 déc. 2018, 16:23

Tu as vu juste.
Merci beaucoup pour ton aide.

Répondre