[: 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 LeXav . Évalué à 5.
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.
[^] # Re: Les variables après le grep
Posté par yodaz . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.