Téléchargement
illégal
Posez votre question Signaler

[shell] Comment additionner des valeurs [Résolu]

fabriceOb 23Messages postés 24 juillet 2007Date d'inscription - Dernière réponse le 16 juil. 2011 à 12:39
Bonjour
Je découvre le shell sous unix (enfin, je re découvre, mais à un niveau nettement supérieur à mes connaissances antérieures)
Je cherche dans un script à additioner 2 valeurs "entières". Mais vu que les variables en shell sont des chaines, j'ai beau chercher, je ne trouve pas de solution propre.
nbComErr= $txtNbComErr1 + $txtNbComErr2 # => marche pas.
nbComErr= $(expr $txtNbComErr1 + $txtNbComErr2) # => marche pas.
echo "($txtNbComErr1 + $txtNbComErr2)" | bc # marche bien, mais comment récupérer le résultat dans une variable
(j'ai bien trouvé la solution fichier, mais je ne trouve pas ca propre....)
Si quelqu'un sait, je suis preneur des solutions :)
Lire la suite 

[shell] Comment additionner des valeurs »

8 réponses
Réponse
+4
moins plus
Salut,
A = `expr $B + $C`
???
avec des back-quote (ALT-GR 7)...
_vince- 25 juil. 2007 à 17:01
En ksh, il y a aussi les double parentheses:

B=5
C=7
(( A = B + C ))

Par contre, je ne connais pas la difference avec la solution avec 'expr'. Si quelqu'un sait...
despubs- 2 nov. 2010 à 10:12
2 possibilité au chois
soit les variables
A=0
B=1
C=2

SOLUTION 1
Commande EXPRT (+infos man expr)
Exemeples 1
Ecriture correcte avec espace
A = 'expr $B + $C'
resultat
echo $A
3
Ecriture correcte SANS espace
résultat incorrecte
echo $A
2+1

SOLUTIION 2
Utilisation des doubles parenthèses
Plus souple solution1 puisque tolérance
à l'utilisation d'espace ou non
"(())"
Exemple
(( A = $B + $C )) ou (( A = $B+$C )) ou (( A= $B+$C )) etc...
echo $A
3
Ajouter un commentaire
Réponse
+3
moins plus
c plus simple et plus performant ;)
a=1
b=2
resultat=$(($a+$b))
Ajouter un commentaire
Réponse
+1
moins plus
La maitrise du $ pour faire un simple =, c'est un énorme pas en avant pour moi.

Merci lami20j
lami20j- 24 juil. 2007 à 21:12
de rien :-)
exploreur01 - 16 juil. 2011 à 12:39
plus simple encore
a=5;
b=7;
let c=a+b;
écho $c;
Ajouter un commentaire
Réponse
+0
moins plus
Salut,
resultat=$(echo "($txtNbComErr1 + $txtNbComErr2)" | bc)
--
lami20j
Ajouter un commentaire
Ce document intitulé « [shell] Comment additionner des valeurs » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?