comment effectuer une arithmétique de base à partir d'unix csh / tcsh shell
Question
Sous Windows, lorsque je dois effectuer des calculs de base, j'utilise une calculatrice intégrée. Maintenant, j'aimerais savoir quelle est la méthode habituelle si vous n’avez qu’un shell.
Merci
La solution
Et vous pouvez toujours utiliser l'interpréteur python, il est normalement inclus dans les distributions Linux.
http://docs.python.org /tutorial/introduction.html#using-python-as-a-calculator
$ python
Python 2.6.2 (r262:71605, Apr 14 2009, 22:40:02) [MSC v.1500 32 bit (Intel)]
Type "help", "copyright", "credits" or "license" for more information.
>>> 2+2
4
>>> # This is a comment
... 2+2
4
>>> 2+2 # and a comment on the same line as code
4
>>> (50-5*6)/4
5
>>> # Integer division returns the floor:
... 7/3
2
>>> 7/-3
-3
>>> # use float to get floating point results.
>>> 7/3.0
2.3333333333333335
Le signe égal ('=') est utilisé pour affecter une valeur à une variable. Ensuite, aucun résultat ne s'affiche avant la prochaine invite interactive:
>>> width = 20
>>> height = 5*9
>>> width * height
900
Et bien sûr, il existe le module mathématique qui devrait résoudre la plupart des besoins de votre calculatrice. .
>>> import math
>>> math.pi
3.1415926535897931
>>> math.e
2.7182818284590451
>>> math.cos() # cosine
>>> math.sqrt()
>>> math.log()
>>> math.log10()
Autres conseils
D'après cette page Web (pour csh
et dérivés, puisque vous avez demandé):
% @ x = (354 - 128 + 52 * 5 / 3)
% echo Result is $x
Result is 174
et
% set y = (354 - 128 + 52 / 3)
% echo Result is $y
Result is 354 - 128 + 52 / 3
remarquez les différents résultats.
Personnellement, je m'en tiens à / bin / sh
et j'appelle awk
ou quelque chose du genre (pour une portabilité maximale), ou d'autres personnes ont présenté le bash
approche.
Il y a beaucoup de bonnes solutions données ici, mais la façon «classique» de faire de l'arithmétique dans la coquille est avec expr.
Bash prend en charge l'arithmétique de base (entier uniquement) . $ (())
:
$ echo $(( 100 / 3 ))
33
$ myvar="56"
$ echo $(( $myvar + 12 ))
68
$ echo $(( $myvar - $myvar ))
0
$ myvar=$(( $myvar + 1 ))
$ echo $myvar
57
(exemple copié directement à partir du lien IBM)
Si vous utilisez bash
, voici un exemple pratique d'un petit script shell permettant d'effectuer des calculs à partir de la ligne de commande (y compris en spécifiant la précision des nombres à virgule flottante):
Vous pouvez également utiliser Perl facilement lorsque bc ou expr ne sont pas assez puissants:
$ perl5.8 -e '$a=1+2; print "$a\n"'
3
L’option alternative consiste à utiliser la commande BC intégrée