¿Puedo hacer matemáticas básicas en Bash?

Respuestas:

21

Simplemente escriba bcen la terminal. Luego escriba todas las cosas de matemáticas después de eso.

bcsignifica " b asic c alculator"

Luego escriba quite ingrese para salir.

DCIndieDev
fuente
2
Solo por claridad sería así: echo 25-5 | aC
Medhat Helmy
Para algunos problemas matemáticos, es posible que deba incluirlo entre comillas, comoecho '0.6 * 12' | bc
Goose
es posible que también necesite agregar escala para que la precisión de coma flotante funcione, es decirecho "scale=2;557/3672" | bc
CpILL
60

Si realmente estamos hablando de Bash, no Bourne Shell (sh) u otros shells, es fácil.

Bash puede calcular expresiones básicas con $ ((expresión)) y aquí hay un ejemplo de cómo te gustaría usarlo:

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

o para uso interactivo, solo

 echo $ ((7 * 3 + 4))
Seikku Kaita
fuente
Parece ser una fiesta adecuada, ya que eso funciona. Me estoy metiendo en uno de los grupos de mis universidades
Kurru
44
La $((expression))sintaxis es parte del shestándar POSIX y se deriva de ksh.
geekosaur
66
Bash solo puede hacer aritmética de enteros. No puede hacer aritmética de coma flotante como ksh93 o zsh
fpmurphy
3
Esta debería haber sido la respuesta aceptada.
Andreas Hartmann
10

Hay una serie de utilidades de línea de comandos para hacer cálculos simples:

$ expr 100 \* 4
400

$ echo '100 * 4' | bc
400

por nombrar solo dos de ellos. Tenga cuidado al hacer la multiplicación, ya que si no escapa de su * el shell puede intentar interpretarlo como un comodín.

Majenko
fuente
9

Otro es AWK:

awk 'BEGIN {print 4 + 3 / 12}'
Pausado hasta nuevo aviso.
fuente
7

Bueno, su pregunta está respondida, pero considere esto:

La mayoría de las distribuciones de Linux tienen Python preinstalado, entonces ¿por qué no usarlo?

Sólo tipo

python

en la terminal y luego haz toda la aritmética que quieras, como

2+2

Saldrá 4 :)

También puede hacer esto directamente desde la terminal con el -cargumento python.

python -c 'print 2+2'
Marcus Maxwell
fuente
En mi computadora, la escritura pythontarda casi dos segundos en comenzar. Bastante molesto si solo quieres hacer algo simple como 2 + 2.
ShreevatsaR
use python3 si no desea redondeo flotante. por ejemplo 2 / 30(pitón: 0) (python3: 0.06666666666666667)
hrvoj3e
y si solo tiene python3 instalado, pero desea redondear, use 2//30oint(2/30)
mazunki
3

O a Ruby. :)

Aunque puede que no venga preinstalado, es bastante rápido.

Escribe irb, entonces 2+2.

O solo ruby -e 'p 2+2'

torbellino
fuente
0

Perl es otra opción:

perl -E 'say 1/7'

salidas

0.142857142857143
Pausado hasta nuevo aviso.
fuente