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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Bash] Boucle while - export variable

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Bash] Boucle while - export variable

n°886490
paul@gloom​oot
Posté le 14-02-2007 à 11:56:42  profilanswer
 

Bonjour,
 
J'ai une question... quand j'exécute le script suivant :
 

#!/bin/bash
 
I=-1;
cat file.txt | while read REF_LINE
do
{
   let I++;
}
done
echo "I = "$I;
 
 
J=-1;
while [ $J -lt 100 ]
do
{
   let J++;
}
done
echo "J = "$J;


 
 
 
j'obtiens l'affichage :
 

I = -1
J = 100


 
 
 
Pourquoi la variable I n'est elle pas exportée hors de la boucle?
Et surtout, comment faire pour récupérer sa valeur?
 
Merci d'avance de votre aide :)

mood
Publicité
Posté le 14-02-2007 à 11:56:42  profilanswer
 

n°886552
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 14-02-2007 à 14:28:54  profilanswer
 

Problème vicieux du "cat | while read"....

 

En fait tu bosses dans le subshell lancé par ta "lecture de pipe", ta variable est modifiée dans ce subshell mais pas dans ton shell courant.
C'est un peu comme si tu faisais un (TOTO=42; cmd1 && cmd2) > plop.txt, le subshell qui lance cmd1 && cmd2 voit dans son environnement TOTO=42, mais dans ton shell courant il n'y a jamais eu de TOTO...

 

Si tu veux compter le nombre de lignes, utilise plutôt wc (man wc)


Message édité par Xavier_OM le 14-02-2007 à 14:30:41

---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.

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

  Bash] Boucle while - export variable

 

Sujets relatifs
[BASH] Ajouter extension via feedback de commande file[BASH] question sur un bout de script
(BASH) Découper $path en plusieurs variables (debutant)Extraire les mails de la file d'exim pour un utilisateur donné
Script bash qui marche à moitiévariable d'environement et login graphique
BASH : ajouter des lignes en début de fichierSH/BASH Petite question avec des -param
Pour les pro du script bash - Supprimer les fichiers < 1kComment interrompre un compte à rebours ? [BASH/UNIX]
Plus de sujets relatifs à : Bash] Boucle while - export variable


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