[Bash] Boucle while - export variable
Résolu
paul@gloomoot
Messages postés
4
Statut
Membre
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai une question... quand j'exécute le script suivant :
j'obtiens l'affichage :
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 :)
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 :)
Configuration: Windows XP Firefox 2.0.0.1
3 réponses
-
Salut,
tu peux faire comme çalami20j@debian:~$ cat paul.sh #!/bin/bash I=0; while read REF_LINE ;do let I++ done < file.txt echo "I = "$I; J=-1; while [ $J -lt 100 ];do let J++; done echo "J = "$J; lami20j@debian:~$ cat file.txt ligne1 ligne2 ligne3 lami20j@debian:~$ sh paul.sh I = 3 J = 100
-
Sinon voilà pour ton script
#!/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'ai mis cette partie entre paranthèseswhile read REF_LINE do { let I++; } done echo "I = "$I;
Voir man bash - Commandes composées (liste)
Voilà comme j'écrirais ton script#!/bin/bash I=0; 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
-
Salut,
Tu peux aussi employer la commande "exec" :#!/bin/bash I=0; exec < 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;
;-))