Posso fazer matemática básica no Bash?


Respostas:


21

Basta digitar bcno terminal. Em seguida, digite todas as coisas matemáticas depois disso.

bcsignifica " b asic c alculator"

Em seguida, digite quite digite para sair.


2
Só por uma questão de clareza, seria assim: eco 25-5 | bc
Medhat Helmy

Para alguns problemas de matemática, pode ser necessário envolvê-la entre aspas, comoecho '0.6 * 12' | bc
Goose

pode ser necessário adicionar escala para que a precisão do ponto flutuante funcione, ou seja,echo "scale=2;557/3672" | bc
CpILL

60

Se estamos realmente falando sobre Bash, não sobre Bourne Shell (sh) ou outras conchas, é fácil.

O Bash pode calcular expressões básicas com $ ((expression)) e aqui está um exemplo de como você pode usá-lo:

 a = 3
 b = 4
 c = $ ((7 * a + b))
 eco $ c

ou para uso interativo, apenas

 eco $ ((7 * 3 + 4))

Parece ser uma festança adequada, pois isso funciona. Estou ssh-ing em um dos meus cachos universidades
Kurru

4
A $((expression))sintaxe faz parte do shpadrão POSIX e é derivada de ksh.
Geekosaur

6
O Bash só pode fazer aritmética inteira. Ele não pode fazer aritmética de ponto flutuante como ksh93 ou zsh
fpmurphy

3
Esta deveria ter sido a resposta aceita.
Andreas Hartmann

10

Existem vários utilitários de linha de comando para fazer cálculos simples:

$ expr 100 \* 4
400

$ echo '100 * 4' | bc
400

para citar apenas dois deles. Cuidado ao fazer a multiplicação como se você não escapasse do seu *, o shell pode tentar interpretá-lo como um curinga.



7

Bem, sua pergunta foi respondida, mas considere o seguinte:

A maioria das distribuições linux tem python pré-instalado, então por que não usá-lo?

Apenas digite

python

no terminal e faça toda a aritmética desejada, como

2+2

Produzirá 4 :)

Você também pode fazer isso diretamente do terminal com o -cargumento python.

python -c 'print 2+2'

No meu computador, a digitação pythonleva quase dois segundos para iniciar. Bastante irritante se você quiser fazer algo simples como 2 + 2.
ShreevatsaR

use python3 se você não quiser arredondamento de flutuação. eg 2 / 30(python: 0) (python3: 0.06666666666666667)
hrvoj3e

e se você tiver o python3 instalado, mas quiser arredondar, use 2//30orint(2/30)
mazunki 8/09

3

Ou Ruby. :)

Embora possa não ser pré-instalado, é bastante rápido.

Digite irbentão 2+2.

Ou apenas ruby -e 'p 2+2'


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.