Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
aide sur script shell
Envoyé par: zlavock

Bonjour,

Voilà, je desire faire une commande: setvar nomFichier nomVariable valeurVariable
Cette fonction doit aller voir dans le fichier texte spécifié trouvé la variable est modifié la valeur ou l'ajouter si elle n'existe pas.

Contenu du fichier:
maVariable : valeur1
maVariable2 : valeur2
etc...

Mon script (qui ne fonctionne pas, j'ai un probleme sur la condition, qd je lit une ligne je n'arrive pas à verifier si elle contient la variable qui est passé en parametre a ma commande... j'ai des petits soucis avec les grep moi :'()

#! /bin/sh

if test -f $1 && test -w $1
then

if ! grep -E -q $2' : ' $1
then
echo $2' : '$3 >> $1
else
file=$MCpath'temp'
echo $file
touch $file

while read ligne
do
if test `(grep $2 $ligne)` #Test qui pose probleme :-\
then
echo $2":"$3 >> $file
else
echo $i >> $file
fi
echo $1 $ligne
done < $1
mv $file $1
fi
else
echo 'Le fichier spécifié est introuvable'
fi

Un peu d'aide ne serait pas de refus pour un petit débutant dans le shell !!! J'avoue que je suis un peu perdu ca deroute par rapport aux autres langages!

Poste le Sunday 7 December 2003 19:17:19
Répondre     Citer    
Re: aide sur script shell
Envoyé par: alveric

"grep $2 $ligne" cherchera l'expression désignée par $2 dans le fichier désigné par $ligne...
Il me semble que
if (echo $ligne | grep -q $2)
marcherait mieux: dans ce cas, echo renvoie le contenu de la ligne sur l'entrée standard de grep.

De plus, si tu veux que les noms de fichier, variable ou que les valeurs puissent contenir des caractères spéciaux (espace, par ex.), il faut protéger les $nom_de_var par des guillemets.

Il serait aussi bon de vérifier au début du script que l'utilisateur a fourni trois paramètres, sinon tu risques des résultats inutilisables. Par exemple :

if test $# != 3
then
echo Nombre de paramètres insuffisants
exit 1
fi

Poste le Sunday 7 December 2003 19:58:19
Répondre     Citer    
Re: aide sur script shell
Envoyé par: zlavock

Ca marche, en plus les explications sont claire :-)

Merci !!! :-D

Zlavock

Poste le Sunday 7 December 2003 20:33:52
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
aide sur script shell
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons