Forum Programmation.shell Problème avec grep et script bash

Posté par  .
Étiquettes : aucune
0
20
jan.
2005
Bonjour, j'ai un problème avec ce petit script , quand à l'éxécution j'ai l'erreur suivante:
[: erreur(1104),: unknown operand

Le but du script est de recherche des codes erreur dans des fichiers textes, et d'envoyer le resultat dans result.txt


#!/bin/sh
cd /home/toto/src
echo "" >> result

for i in `cat code`
do
echo -e "Erreur numero $i, fichiers concernes: \n">> result.txt
for f in *
do
chaine=`grep -e "erreur($i)" $f`
if [ -n $chaine ]
then
echo -e "\t $f\t" >> result.txt
fi
done
done


Quelqu'un peut il me dire d'ou vient l'erreur, je pense a un problème de substitution de variable, mais je n'arrive pas a comprendre ce qui foire.

Merci d'avance pour vos réponses
  • # Les variables après le grep

    Posté par  . Évalué à 5.

    Salut,
    Essaye de mettre la variable $chaine entre guillement dans le if.
    Si ton grep ne retourne pas une valeur "atomique", le if [ -n $chaine ] ne va prendre que la première partie de $chaine, avant l'éventuel caractère d'espacement.
    En mettant des guillemets, ça devrait passer.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.