cómo realizar una aritmética básica desde unix csh / tcsh shell
Pregunta
En Windows, cuando necesito realizar cálculos básicos, uso una calculadora incorporada. Ahora me gustaría averiguar cuál es la forma común si solo tiene un shell.
Gracias
Solución
Y siempre puedes usar el intérprete de Python, normalmente se incluye en las distribuciones de 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
El signo igual ('=') se usa para asignar un valor a una variable. Posteriormente, no se muestra ningún resultado antes del siguiente mensaje interactivo:
>>> width = 20
>>> height = 5*9
>>> width * height
900
Y, por supuesto, está el módulo matemáticas que debería resolver la mayoría de sus necesidades de calculadora .
>>> import math
>>> math.pi
3.1415926535897931
>>> math.e
2.7182818284590451
>>> math.cos() # cosine
>>> math.sqrt()
>>> math.log()
>>> math.log10()
Otros consejos
De esta página web (para csh
y derivados, ya que lo preguntaste):
% @ x = (354 - 128 + 52 * 5 / 3)
% echo Result is $x
Result is 174
y
% set y = (354 - 128 + 52 / 3)
% echo Result is $y
Result is 354 - 128 + 52 / 3
observe los diferentes resultados.
Personalmente, me quedo con / bin / sh
y llamo a awk
o algo (para una portabilidad máxima), u otros han exhibido el bash
enfoque.
Hay muchas buenas soluciones dadas aquí, pero la forma "clásica" de hacer aritmética en el shell es con expr.
Bash admite aritmética básica (solo entero) dentro $ (())
:
$ echo $(( 100 / 3 ))
33
$ myvar="56"
$ echo $(( $myvar + 12 ))
68
$ echo $(( $myvar - $myvar ))
0
$ myvar=$(( $myvar + 1 ))
$ echo $myvar
57
(ejemplo copiado directamente del enlace de IBM)
Si está usando bash
, aquí hay un práctico ejemplo de un pequeño script de shell que le permite hacer cálculos desde la línea de comando (incluida la especificación de precisión para números de punto flotante):
También puede usar Perl fácilmente donde bc o expr no son lo suficientemente potentes:
$ perl5.8 -e '$a=1+2; print "$a\n"'
3
La opción alternativa es utilizar el comando BC incorporado