Menu

Somme de variables [Résolu]

lepays 5 Messages postés jeudi 29 mars 2001Date d'inscription 4 mars 2018 Dernière intervention - 4 mars 2018 à 00:14 - Dernière réponse : dubcek 17429 Messages postés lundi 15 janvier 2007Date d'inscriptionContributeurStatut 28 mai 2018 Dernière intervention
- 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!


Afficher la suite 

Votre réponse

10 réponses

Utilisateur anonyme - 4 mars 2018 à 01:55
0
Merci
salut,

à vue de pif, et vue les complications qu'annoncent les indirections, ton script est mal conçu.
Commenter la réponse de Utilisateur anonyme
zipe31 35639 Messages postés dimanche 7 novembre 2010Date d'inscriptionContributeurStatut 16 juin 2018 Dernière intervention - 4 mars 2018 à 09:35
0
Merci
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 ?

Commenter la réponse de zipe31
lepays 5 Messages postés jeudi 29 mars 2001Date d'inscription 4 mars 2018 Dernière intervention - 4 mars 2018 à 13:56
0
Merci
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!
zipe31 35639 Messages postés dimanche 7 novembre 2010Date d'inscriptionContributeurStatut 16 juin 2018 Dernière intervention - 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
Utilisateur anonyme > zipe31 35639 Messages postés dimanche 7 novembre 2010Date d'inscriptionContributeurStatut 16 juin 2018 Dernière intervention - 4 mars 2018 à 15:32
$ a1=1;a3=3;a5=5
$ ar=( ${a0} ${a1} ${a2} ${a3} ${a4} ${a5} )
$ ( IFS='+'; echo $((${ar[*]})) )
9
;)
lepays 5 Messages postés jeudi 29 mars 2001Date d'inscription 4 mars 2018 Dernière intervention > 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
zipe31 35639 Messages postés dimanche 7 novembre 2010Date d'inscriptionContributeurStatut 16 juin 2018 Dernière intervention > Utilisateur anonyme - 4 mars 2018 à 16:36
Hi,

Je me doutais qu'il y avait plus simple, et je voulais aussi voir si tu suivais ;-))
Commenter la réponse de lepays
dubcek 17429 Messages postés lundi 15 janvier 2007Date d'inscriptionContributeurStatut 28 mai 2018 Dernière intervention - 4 mars 2018 à 14:28
0
Merci
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
...
dubcek 17429 Messages postés lundi 15 janvier 2007Date d'inscriptionContributeurStatut 28 mai 2018 Dernière intervention - 5 mars 2018 à 10:58
plus simple
for var in "${taille01}" "${taille02}" "${taille03}" "${taille04}" "${taille05}" ; do
...
Commenter la réponse de dubcek
lepays 5 Messages postés jeudi 29 mars 2001Date d'inscription 4 mars 2018 Dernière intervention - 4 mars 2018 à 15:55
0
Merci
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.
Commenter la réponse de lepays