Rechercher : dans
Par :

Script BASH et retour variable avec GREP

Dernière réponse le 17 oct 2008 à 05:56:08 pcsystemd, le 16 oct 2008 à 18:14:22 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « Script BASH et retour variable avec GREP » dans :
[Bash] La variable d'environnement PATH Voir La variable d'environnement PATH I. Préambule II. C'est quoi le shell ? III. Définition IV. Séance de dissection V. Ajouter un répertoire à la variable PATH VI. Et puis... I. Préambule Sous les systèmes GNU/Linux qu'on le veuille ou...
Créez votre propre commande linux Voir1. Création du script bash 2. Rendre la commande exécutable 1. Création du script bash Dans un premier temps, il faut que vous créiez votre script Bash qui sera exécuté lors de votre commande. Par exemple, pour le mien j'ai ...
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha...
[Shell] Tester une variable numérique VoirTester une variable numérique    Préambule Dans un environnement "shell", les variables sont, par défaut, de type "chaîne de caractères". De ce fait il n'est pas possible de déclarer une variable de type "entier" (enfin, ceci n'est pas tout à...

1

jipicy, le 16 oct 2008 à 18:17:30

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.
;-)) $ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

2

(Pabix), le 16 oct 2008 à 18:24:22

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)

Répondre à (Pabix)

3

 pcsystemd, le 17 oct 2008 à 05:56:08
  • +2

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é. L'accès au savoir est la première liberté que chaque homme d­evrait avoir.

Répondre à pcsystemd