Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1764 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  pb scipt shell comparer un argument a une valeur dan un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pb scipt shell comparer un argument a une valeur dan un fichier

n°1505409
drexlbob
Posté le 20-01-2007 à 21:46:55  profilanswer
 

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!!!

mood
Publicité
Posté le 20-01-2007 à 21:46:55  profilanswer
 

n°1505698
Sve@r
Posté le 21-01-2007 à 21:50:40  profilanswer
 

drexlbob a écrit :

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!!!


 
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" !!!


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1505856
aigles
Posté le 22-01-2007 à 12:13:52  profilanswer
 

Tu as un problème de logique dans ta fonction.
 
La condition dans ton elif ne sera jamais vérifiée :

  • Si $1 est égal à put, on restera au niveau de la clause then du second if
  • Dans le cas contraire, on teste bien la condition dans le elif mais elle ne peut pas être vérifiée car $1 n'est pas égal à put.


 
Jean-Pierre.

n°1505885
Sve@r
Posté le 22-01-2007 à 14:09:42  profilanswer
 

aigles a écrit :

Tu as un problème de logique dans ta fonction.
 
La condition dans ton elif ne sera jamais vérifiée :

  • Si $1 est égal à put, on restera au niveau de la clause then du second if
  • Dans le cas contraire, on teste bien la condition dans le elif mais elle ne peut pas être vérifiée car $1 n'est pas égal à put.


 
Jean-Pierre.


Comment ai-je pu rater ça !!!  :??:  
Joliment bien vu !!! :wahoo:


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1507180
drexlbob
Posté le 25-01-2007 à 15:41:28  profilanswer
 

OK je vous remercie ca marche !!!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  pb scipt shell comparer un argument a une valeur dan un fichier

 

Sujets relatifs
Fichier AuthorizedKeysFile[Java] Crypter un fichier avec le support du multi-threading?
Prob hashmap -> valeur associée à une clé changeante[Résolu] Comment envoyer un fichier sur un serveur (client ftp)
2 formulaire ds un même fichier phpSuprimé un fichier totalement du dd, sans pouvoire le récupérer
pblm upload fichier, interdire certains...lecture de fichier
Problème de compréhension avec un ligne de shellcomparer deux instances
Plus de sujets relatifs à : pb scipt shell comparer un argument a une valeur dan un fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR