Pergunta

No Windows, quando eu preciso para realizar um cálculo básico, eu uso uma calculadora embutida. Agora eu gostaria de saber qual é o caminho comum, se você tiver apenas um shell.

Graças

Foi útil?

Solução

E você sempre pode usar o interpretador Python, que é normalmente incluídos em distribuições 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

O sinal de igual ( '=') é usado para atribuir um valor a uma variável. Depois disso, nenhum resultado é exibido antes da próxima interativo prompt:

>>> width = 20
>>> height = 5*9
>>> width * height
900

E, claro, há o módulo matemática que deve resolver a maioria de suas necessidades calculadora .

>>> import math
>>> math.pi
3.1415926535897931
>>> math.e
2.7182818284590451
>>> math.cos() # cosine
>>> math.sqrt()
>>> math.log()
>>> math.log10()

Outras dicas

A partir desta página web (para csh e derivados, desde que você pediu):

% @ x = (354 - 128 + 52 * 5 / 3)
% echo Result is $x
Result is 174

e

% set y = (354 - 128 + 52 / 3)
% echo Result is $y
Result is 354 - 128 + 52 / 3

notar os resultados diferentes.

Pessoalmente, eu furar a /bin/sh e awk chamada ou alguma coisa (para portabilidade máxima), ou outros exibiram a abordagem bash.

Você pode usar dc . Ou bc .

Existem muitas soluções boas dadas aqui, mas a maneira 'clássica' para fazer aritmética no shell é com expr.

suporte de base (inteiro apenas) aritmética dentro $(( )):

$ echo $(( 100 / 3 ))
33
$ myvar="56"
$ echo $(( $myvar + 12 ))
68
$ echo $(( $myvar - $myvar ))
0
$ myvar=$(( $myvar + 1 ))
$ echo $myvar
57

(exemplo copiado direto do link IBM)

Se você estiver usando bash, aqui está um exemplo prático de um pequeno shell script que lhe permite fazer cálculos a partir da linha de comando (incluindo a especificação de precisão para números de ponto flutuante):

http://www.novell.com/coolsolutions/tools/17043.html

Você também pode usar Perl facilmente onde bc ou expr são o suficiente para não poderoso:

$ perl5.8 -e '$a=1+2; print "$a\n"' 
3

opção alternativa é usar o construída em comando BC

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top