Ajouter plusieurs variables dans une boucle en BASH [Résolu]

Signaler
Messages postés
103
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
16 décembre 2019
-
bob737
Messages postés
103
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
16 décembre 2019
-
Bonjour,

Mon fichier peut avoir beaucoup de lignes mais se structure ainsi:
100;500
200;500


Je cherche à ajouter dans mettre dans une variable le résultat de 100+200 et le résultat de 200+500
soit additionner les colonnes 1 et colonnes 2.

j'ai un script qui fonctionne en shell mais pas en bash car le résultat ne sort pas de la boucle.

resval1=0
resval2=0
cat FICHIER | while IFS";" read val1 val2
do
resval1=$((${resval1}+${val1}))
resval2=$((${resval2}+${val2}))
done

en mode debug (set -vx), je vois bien la boucle faire le boulot mais echo $resval1 et echo $resval1 sont vide.

une idée? Merci :-)

Configuration: Windows / Chrome 78.0.3904.97

3 réponses

Messages postés
17967
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
15 décembre 2019
4529
hello
avec
cat FICHIER | while .... done

la boucle s'exécute dans un sous shell et les variables disparaissent; ce n'est pas le cas avec
while .... done < FICHIER
bob737
Messages postés
103
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
16 décembre 2019

Nickel. ça marche.