pb scipt shell comparer un argument a une valeur dan un fichier - Shell/Batch - Programmation
Marsh Posté le 21-01-2007 à 21:50:40
drexlbob a écrit : Bonjour a tous. Voila je suuis en ecole d'info et jai un script a faire. |
Bon alors 2 choses
1) poster 2 fois la même question dans deux topics différents c'est franchement nul
2) faire aussi peu d'effort sur l'orthographe ne donne absolument pas envie de t'aider
Sinon la procédure sous unix pour modifier une valeur dans un fichier est généralement celle-ci
1) recopier tout ce qui est avant la valeur à modifier dans un second fichier
2) écrire la nouvelle valeur à la suite du second fichier
3) recopier tout ce qui est après la valeur à modifier dans le second fichier
4) renommer le second fichier à la place du premier
Toi, tout ce que tu fais, c'est de rajouter des lignes dans le fichier "sh.db" !!!
Marsh Posté le 22-01-2007 à 12:13:52
Tu as un problème de logique dans ta fonction.
La condition dans ton elif ne sera jamais vérifiée :
Jean-Pierre.
Marsh Posté le 22-01-2007 à 14:09:42
aigles a écrit : Tu as un problème de logique dans ta fonction.
|
Comment ai-je pu rater ça !!!
Joliment bien vu !!!
Marsh Posté le 20-01-2007 à 21:46:55
Bonjour a tous. Voila je suuis en ecole d'info et jai un script a faire.
Voila mon code :
put_in_db()
{
ky=`cut -d" " -f2 sh.db | grep -w "$2"`
if [ $# -eq 3 ]
then
if [ "$1" = "put" ]
then
echo "$1 $2 $3" >> sh.db
elif [ "$2" = "$ky" -a "$1" = "put" ] #===========> apartir de la ca deconne la comparaison "$2" = "$ky" ne marche pas. Mais pourquoi donc???? je ne sais pas.
then
echo "je doi ecraser la valeur (arg3 du prog)" >> sh.db
fi
fi
}
Le prog pren en parametre:
./prog put key value
il ecrit donc put key value dans le fichier sh.db
ensuite si je fai :
./prog put key1 value1
et la kan je fait un cat de sh.db il maffiche bien :
put key value
put key1 value1
LE PROBLEME ARRIVE ICI:
si je retape
./put key value
il doi ecraser la valeur de la clef
dans le fichier on aura donc:
put key
put key1 vallue1
Merci de me repondre!!!