En général, j'utiliserai EXPR à l'intérieur des scripts Shell pour faire des opérations arithmétiques. P>
Y a-t-il une manière où nous pouvons proposer une opération arithmétique dans un script shell sans utiliser expr? p>
3 Réponses :
Avez-vous essayé de lire "homme ksh" si vous utilisez ksh?
"Man Bash", par exemple, a suffisamment d'informations sur faire des arithmétiques avec Bash. P>
La composition de commande - Je peux être utilisé pour spécifier qu'une variable doit être traitée comme un entier, par exemple Typeet -I Myvar Spécifie que la variable mouvar est un entier plutôt qu'une chaîne. Après la commande Typeet, tente d'attribuer une valeur non entière à la variable échouera: P>
$ echo $(($MYVAR+45)) 101 $
OSR507DOC.SCO.com/fr/OSUSERG/_MATH_ON_VAR_IN_KSH.HTML bo.infn.it/alice/alice-doc/mll -doc / impgde / nœud18.html
Dans toute l'équité, la page KSH Man est, Um, pas si utile. Les pages de l'homme KSH88 sont même trompeuses, par exemple, expliquant la variable _, ils vous disent que cela se rapporte au courrier postal, mais n'expliquez pas clairement ce que c'est. (sur Solaris 9, HPUX 11.0 & 11i) C'est l'argument (s) de la commande précédemment entrée, si cela compte.
Coquillages modernes (Posix Conformed = Moderne à mon avis) Supporte les opérations arithmétiques: + - / * sur les variables entier longues signées +/- 2147483647.
Utilisez AWK pour la double précision, 15 chiffres siginificants, il fait aussi SQRT. P>
Utilisez BC -L pour une précision étendue jusqu'à 20 chiffres significatifs. P>
La syntaxe (ZED_0XFFF) pour la coquille que vous avez déjà vue: p> awk fait double précision - point flottant - opérations arithmétiques de manière nativement.
Il a aussi SQRT, COS, SIN .... Voir: P> http://people.cs.uu.nl/piet/docs/nawk/nawk_toc.html P> BC a certaines fonctions définies et une présision étendue disponible avec le - L Option: P> BC -L P> Exemple: P> echo 'sqrt(.977)' | bc -l
La précision et la plage de coque intégrée (n.b - méfiez-vous que, tandis que Aussi - certaines obus sont plus à venir à cet égard. ZSH, par exemple, permet aux opérations de point flottant, telles que $ ((
Expr code>, qui semble supporter des entiers plus importants d'une manière qui semble être indépendante de la plate-forme). P>
^ code> est un opérateur valide dans la plupart des coquilles, cela ne signifie pas "à la puissance de", mais plutôt xor.) p>
$ ((10 / 3.0)) code> p>
Je suppose "utiliser
bc code> à la place" n'est pas assez i> la réponse que vous recherchez ...
@ignacio ... Pourriez-vous opter un exemple de comment utiliser BC?
PI = $ (echo "4 * A (1)" | BC -L) code>