Somme de variables

Résolu/Fermé
lepays Messages postés 8 Date d'inscription jeudi 29 mars 2001 Statut Membre Dernière intervention 10 novembre 2022 - 4 mars 2018 à 00:14
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 5 mars 2018 à 10:58
Bonjour,
Dans cette boucle:
for var in $taille01 $taille02 $taille03 $taille04 $taille05 ; do
if [ -n ${!var} ] ; then
echo "$var is set to ${!var}"
else
echo "$var is not set"
fi

done

J'ai des variables qui peuvent être vides et à l'exécution, je voudrais exploiter celles qui ne sont pas éliminées et, comme elles représentent chacune une valeur je voudrais les ajouter. Avec ce bout de code trouvé je bute sur la façon d'y parvenir: une petite aide serait bienvenue et, merci par avance!


A voir également:

5 réponses

Utilisateur anonyme
4 mars 2018 à 01:55
salut,

à vue de pif, et vue les complications qu'annoncent les indirections, ton script est mal conçu.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
4 mars 2018 à 09:35
Salut,

Peut-être devrais-tu plutôt t'intéresser aux tableaux en bash pour y stocker tes variables (les valeurs nulles ne seront pas prises en compte) et boucler avec une boucle style langage C ?

0
lepays Messages postés 8 Date d'inscription jeudi 29 mars 2001 Statut Membre Dernière intervention 10 novembre 2022
4 mars 2018 à 13:56
Hello!

Merci Zipe31 de m'avoir répondu - Je me suis déjà accroché aux tableaux. je vais y replonger - Ce bout de script est modifié juste avec mes variables - le script a été pioché sue le net.
Ses variables contiennent en fait la taille de fichiers sauvegardés et, ce que j'ai trouvé de bien c'est que je n'ai pas d'erreur si je ne rentre pas la totalité des variables de la boucle For (mais toutes ces variables existent mais ne sont pas toutes sélectionnées) : le comble est l'extraction de ces variables non vides sélectionnées par un menu (que je vois dans la réponse de la boucle ci-dessus). Je vais regarder chez les tableaux! Merci amplement et Salutations!
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
4 mars 2018 à 14:14
# Définition des variables
$ a1=1;a3=3;a5=5

# Déclaration tableau (a0, a2 et a4 ne sont pas définies)
$ var=( ${a0} ${a1} ${a2} ${a3} ${a4} ${a5} )

# Nombre d'éléments du tableau
$ echo ${#var[@]}
3

# Boucle sur les valeurs présentes et addition
$ for (( x=0; x<${#var[@]}; x++ ));do som=$(( ${som} + ${var[x]} ));done;echo ${som}
9
0
Utilisateur anonyme > zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021
4 mars 2018 à 15:32
$ a1=1;a3=3;a5=5
$ ar=( ${a0} ${a1} ${a2} ${a3} ${a4} ${a5} )
$ ( IFS='+'; echo $((${ar[*]})) )
9
;)
0
lepays Messages postés 8 Date d'inscription jeudi 29 mars 2001 Statut Membre Dernière intervention 10 novembre 2022 > Utilisateur anonyme
4 mars 2018 à 16:05
Bonjour et Merci!
Je remercie amplement de m'avoir lu et suggérer une solution! Merci et Bonne fin de journée - il est 13h10 de dimanche 04 en Martinique! Bye
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407 > Utilisateur anonyme
Modifié le 4 mars 2018 à 16:56
Hi,

Je me doutais qu'il y avait plus simple, et je voulais aussi voir si tu suivais ;-))
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
4 mars 2018 à 14:28
hello
les tableaux c'est mieux, sinon, pour qu'une variable vide soit traitée dans la boucle
for var in ${taille01:-""} ${taille02:-""} ${taille03:-""} ${taille04:-""} ${taille05:-""} ; do
...
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
5 mars 2018 à 10:58
plus simple
for var in "${taille01}" "${taille02}" "${taille03}" "${taille04}" "${taille05}" ; do
...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lepays Messages postés 8 Date d'inscription jeudi 29 mars 2001 Statut Membre Dernière intervention 10 novembre 2022
4 mars 2018 à 15:55
Hello!

Merci Zipe31 et Dubcek. - En effet la solution de Zipe31 est très performant et je le félicite d'avoir trouvé très rapidement cette solution. Je dois dire que je suis très heureux et ce bout de code sera décortiqué minutieusement: que je puisse tirer des leçons! Pour ce code, il aura 27 variables et celles qui seront sélectionnées par menu seront avec "${som}" décortiquées par un script en Octets, Ko, Mo et Go. Merci encore et Très Sincères Salutations - Je vais mettre Résolu.
0