Utilisation de grep dans un script bash [Résolu/Fermé]

Signaler
Messages postés
42
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
17 août 2005
-
Messages postés
42
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
17 août 2005
-
Bonjour,

J'ai un petit problème. Je voudrais utiliser la commande grep dans un scrip bash mais je n'y arrive pas. Voilà mon script:

#!/usr/local/bin/bash

source commun

recupererTexte_Toto()
{
    local path=$1
    local resultat="'grep Toto $path | cut -f 4 -d " "'"
    echo $resultat
}

LOG_DIR='~/mon_path/'

if [ "$#" -gt "1" ]
then
    echo "Usage:"
    echo "monScript ou monScript nomFichierDeLog"
    pkill -P $$
    exit 0
fi

if [ "$#" -eq "0" ]
then
    nomFichierDeLog=$LOG_DIR
    nomFichierDeLog=$nomFichierDeLog'nomExecutable.log'
else
    nomFichierDeLog=$LOG_DIR`$1`
fi

nomDeFichier=monFichier'__test__'

if [ "ls" -eq "0" ]
then
    rm $nomDeFichier
fi

recupererTexte_Toto $nomFichierDeLog > $nomDeFichier


Le problème c'est que la variable locale "resultat"ne contient pas le résultat du grep mais le texte de la commande faisant le grep??

Merci

10 réponses

Messages postés
2572
Date d'inscription
vendredi 1 avril 2005
Statut
Contributeur
Dernière intervention
6 septembre 2008
364
Salut,

j'ai l'impression que tu as des quotes en trop :
local resultat=`grep Toto $path | cut -f 4 -d " "`

devrait faire l'affaire :)

4
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
42
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
17 août 2005
2
Récapitulatif:

Dans le script initial j'avais utilisé le caractère ' au lieu du caractère ` dans l'affectation de la variable locale "resultat".
Ensuite le grep n'arrivait pas à ouvrir mon fichier car il s'agissait d'un chemin absolu. En passant au grep un chemin relatif tout fonctionnait.

Rakoun
/°\
Messages postés
42
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
17 août 2005
2
En fait quand je fais comme tu dis ça fait pareil à la seule différence que $path n'est pas remplacée par sa vraie valeur. C'est pour cette raison que j'ai ajouté les "".
Messages postés
2572
Date d'inscription
vendredi 1 avril 2005
Statut
Contributeur
Dernière intervention
6 septembre 2008
364
et si tu met $PATH ou ${path} ?
Messages postés
42
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
17 août 2005
2
Pourquoi $PATH?J'ai déjà un $path.
Messages postés
2572
Date d'inscription
vendredi 1 avril 2005
Statut
Contributeur
Dernière intervention
6 septembre 2008
364
ah oui, j'avais mal lu :/ le path=$1
Messages postés
42
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
17 août 2005
2
Mince, je me suis planté, j'ai utilisé ' au lieu de `. Donc maintenant avec ` grep me dit qu'il n'arrive pas à ouvrir le fichier. Pourtant le path est bon vu que ça marche en ligne de commande?
Messages postés
5432
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
15 octobre 2020
906
Salut Rakoun,

On dirait que les quotes que tu utilises sont des ' (minuscule du 4) et non des ` (AltGr-7 - soit des "backquotes").

Reprend la syntaxe proposée par marc[i1] en veillant bien à insérer des backquotes.


Dal
Messages postés
42
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
17 août 2005
2
Ouep bien vu, c'est ce que je disais plus haut ;-). Ca avance...
Messages postés
5432
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
15 octobre 2020
906
S'agissant de ton erreur d'ouverture tu passes un chemin absolu ou un chemin relatif dans recupererTexte_Toto() ?


Dal
Messages postés
42
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
17 août 2005
2
T'as fait la bonne remarque, avec un chemin relatif ça marche!

Merci à tous les deux.
Messages postés
42
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
17 août 2005
2
Il s'agit d'un chemin absolu.