Script BASH et retour variable avec GREP

Bonjour,

voila dans mon script bash j'ai donné la valeur suivante a deux variables :
FILE="test.txt"
AGTEST=`grep -q "^[^#]*DEBUG" ${FILE}`

Le problème c'est que la valeur de $AGTEST est pas retournée.
Effectivement si je saisie en console :
AGTEST=`grep -q "^[^#]*DEBUG" ${FILE}` 

puis
echo $AGTEST

rien n'est retournée alors que dans mon fichier test.txt le mot DEBUG est bien présent.
Une idée?
Merci

--
L'accès au savoir est la première liberté que chaque homme devrait avoir.
Configuration: Linux
Mozilla 1.9.0.1

3 réponses

  1. Merci a vous deux. Mille excuses jipicy car j'aurais du regarder le man de grep surtotu qu'en plus je sais qu'en general le -q vaut --quiet.

    Merci Pabix, pour tes informations. Je vais testé.
    1. Modérateur
      Salut,

      Extrait du man grep :
      -q, --quiet, --silent
                    Ne pas afficher les  résultats  normaux.   Sortir  immédiatement
                    avec  un  code de retour égal à zéro si aucune concordance n'est
                    trouvée, et même  si  une  erreur  est  détectée.   Voyez  aussi
                    l'option -s ou --no-messages.
      
      ;-))
      1. Bonjour, tu fais quelques erreurs de programmation ; il faut toujours, par précaution, metre des guillemets autour des déréférencements avec $

        FILE="test.txt"
        AGTEST="$(grep -q "^[^#]*DEBUG" "$FILE")"

        Là, AGTEST stockera la sortie de la commande grep. Ce que tu veux c’est la valeur de retour :

        FILE="test.txt" ; grep -q "^[^#]*DEBUG" "$FILE ; AGTEST="$?"

        Mais si tu veux juste faire qqch si ça s’est bien déroulé, c’est

        grep machin truc && autre commande

        Ou alors, si une erreur a eu lieu :

        grep machin truc || (echo "Erreur" ; exit)