Ajouter plusieurs variables dans une boucle en BASH

Résolu/Fermé
bob737 Messages postés 144 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 14 mars 2024 - 21 nov. 2019 à 14:59
bob737 Messages postés 144 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 14 mars 2024 - 21 nov. 2019 à 20:53
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
A voir également:

1 réponse

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
21 nov. 2019 à 18:08
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 jeudi 24 septembre 2009 Statut Membre Dernière intervention 14 mars 2024
21 nov. 2019 à 20:53
Nickel. ça marche.
0