Votre navigateur est obsolète. Téléchargez un navigateur moderne, par exemple FireFox.
Léa-Linux : Forum
Le forum de Léa abrite des discussions autour des Logiciels libres.
Syndication
  • RSS ForumForum complet
  • RSS Forum - DéveloppementForum - Développement
  • RSS Forum - Développement - 130208Cette discussion

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.

Important : quand vous posez une question, n'oubliez pas de nous donner les indications suffisantes pour que nous puissions répondre. En effet, la divination n'est pas le fort du Linuxien averti. Pour une meilleure compréhension, le bon usage de la grammaire et de l'orthographe est fortement encouragé. En particulier, le langage SMS est à éviter absolument. En cas d'abus, il pourra être censuré sans autre forme de procès.
Les messages dont le contenu est illégal (incitant à la haine - raciale ou autre, diffamant), ou dont le contenu est sans rapport avec le sujet du forum, ou qui sont parfaitement stupides ou hors sujet seront supprimés sans pitié. Il pourra même être fait appel au fournisseur d'accès du coupable pour faire cesser ses agissements.
» Index du forum » Développement » aide sur script shell
Aller à la discussion: PrécédentSuivante
Action: Nouveau sujetChercherS'authentifier
aide sur script shell
Auteur: zlavock (IP enregistrée)
Date: le 7 décembre 2003 à 19:17

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 image : cry
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!

Re: aide sur script shell
Auteur: alveric (IP enregistrée)
Date: le 7 décembre 2003 à 19:58

"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

Re: aide sur script shell
Auteur: zlavock (IP enregistrée)
Date: le 7 décembre 2003 à 20:33

Ca marche, en plus les explications sont claire image : content

Merci !!! image : laugh

Zlavock



Nom du forum : (antispam) - (en développement:saisir un texte pour le message, rempli cette zone automatiquement)
Votre nom: 
Votre email: 
Sujet: 

 
Ce forum est boosté par Phorum.