Impossible de comprendre comment effectuer l’arithmétique dans une boucle bash (pour)

#! /bin/bash sum=0 for number in $* do x=$(( sum + number )) echo $x done 

J’essaie simplement de créer un script appelé “add” qui appenda des parameters de position lors de l’exécution. Au lieu d’append les nombres, il les affiche simplement comme une boucle le ferait normalement. Par exemple

 $ add 1 2 3 4 5 6 1 2 3 4 5 6 

Qu’est-ce que je fais mal?

Vous ne mettez jamais à jour la sum . Tu voulais dire ça?

 sum=0 for number in "$@"; do sum=$((sum + number)) echo "$sum" done 

( echo $sum sort de la boucle si vous souhaitez uniquement une sum finale, plutôt qu’un total cumulé, écrit sur la sortie standard.)