[Bash] Boucle while - export variable
Résolu
paul@gloomoot
Messages postés
4
Statut
Membre
-
jipicy Messages postés 41342 Statut Modérateur -
jipicy Messages postés 41342 Statut Modérateur -
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 :)
A voir également:
- Do while bash
- Bingo bash free - Télécharger - Divers Jeux
- My people do - Télécharger - Organisation
- Bash addition ✓ - Forum Shell
- Additionner deux réels en shell ✓ - Forum Shell
- Do not turn off target traduction - Forum Samsung
3 réponses
Salut,
tu peux faire comme ça
tu peux faire comme ça
lami20j@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
J'ai mis cette partie entre paranthèses
Voir man bash - Commandes composées (liste)
Voilà comme j'écrirais 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èses
while 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