Ajouter plusieurs variables dans une boucle en BASH

Résolu
bob737 Messages postés 144 Date d'inscription   Statut Membre Dernière intervention   -  
bob737 Messages postés 144 Date d'inscription   Statut Membre Dernière intervention   -
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

1 réponse

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 636
 
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
1
bob737 Messages postés 144 Date d'inscription   Statut Membre Dernière intervention  
 
Nickel. ça marche.
0