Ajouter plusieurs variables dans une boucle en BASH

[Résolu/Fermé]
Signaler
Messages postés
130
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
20 septembre 2021
-
Messages postés
130
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
20 septembre 2021
-
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

Messages postés
18265
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 septembre 2021
5 375
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

Messages postés
130
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
20 septembre 2021

Nickel. ça marche.