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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [KSH] impossible de faire un compteur tout simple !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[KSH] impossible de faire un compteur tout simple !

n°732793
tsunamijf
PSN : julien_fr38
Posté le 21-09-2005 à 09:59:05  profilanswer
 

Bonjour
 
j'y comprends plus rien  :pt1cable:
je veux faire un compteur de base
mais ca marche pas
 
#!/bin/ksh
 
NomScript=$(basename $0)
DirScript=$(dirname $0)
 
valeur=0
 
FicData=${DirScript}/analyze_table_and_index.dat
 
cat ${FicData} | while read Data
do
        let valeur=$valeur+1
        echo $valeur
done
 
echo $valeur
 
 
 
echo $valeur renvoie bien la valeur qui s'incremente au fur et à mesure de la lecture du fichier
 
echo $valeur renvoie 0, c'est à dire la valeur de départ
 
comprends pas  :sweat:  
 


---------------
PSN : julien_fr38
mood
Publicité
Posté le 21-09-2005 à 09:59:05  profilanswer
 

n°732795
tsunamijf
PSN : julien_fr38
Posté le 21-09-2005 à 10:03:41  profilanswer
 

ce script la fonctionne  
 
while read -r LIGNE
do
        let valeur=$valeur+1
done < ${FicData}
 
echo $valeur
 
 
mais j'aimerais quand même savoir pourquoi ca marche pas pour le 1er script :(


---------------
PSN : julien_fr38
n°733338
matafan
Posté le 22-09-2005 à 18:37:08  profilanswer
 

C'est piege ultra-classique et deja explique 10,000 fois. Si tu fais un pipe, la partie droite est executee dans sous-shell (forcement, puisque les parties droites et gauches doivent s'executer en meme temps). Qu'est-ce que la partie droite de ton pipe ? Tout ce qui est entre le "while" et le "done", compris. Donc tu incremente <valeur> dans un sous-shell, ce qui ne modifie evidemment pas <valeur> dans le shell pere. Et ton "echo" est dans le shell pere.
 
Une solution est d'ouvrir un parenthese apres le "|" et de la fermer apres ton dernier "echo". Ca a pour effet de lancer tout le contenu des parentheses dans un sous-shell, plutot que seulement l'expression qui suit le pipe.

n°733528
tsunamijf
PSN : julien_fr38
Posté le 23-09-2005 à 08:40:58  profilanswer
 

Merci pour l'information :)


---------------
PSN : julien_fr38

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [KSH] impossible de faire un compteur tout simple !

 

Sujets relatifs
[SAMBA] archive bit impossible à effacer?disque dur sata detecté mais impossible à monter
[Résolu] Impossible d'exécuter un script sur un disque rajouté.Utilisation de tout l'écran impossible avec NVIDIA 420GO
impossible d'installer update MacOSX combo10.2.8XML/simple.pm sous mandrake
[Résolu]Impossible d'acceder a mon disque dur IDEClonage de poste impossible ?
[Mandriva 10.2 /resolu] Partage de connexion Internet impossible[Fedora 4] Connexion en SSH sans mot de passe impossible ! [résolu]
Plus de sujets relatifs à : [KSH] impossible de faire un compteur tout simple !


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