Soy de los que siempre están programando scripts bash para resolver situaciones del día a día (crackear el password del AP/Router, automatizar procesos, etc).
En determinadas ocasiones me he visto en la necesidad de asignarle el valor de alguna expresión matemática a una variable, o simplemente trabajar con expresiones matemáticas, ahí me encuentro con el problema de que bash y las expresiones matemáticas, los cálculos no son muy amigos. Sucede que bash no es como python, que podemos decir variable = 1+5/6 (por ejemplo), en Bash deberemos usar el comando expr o calc
Comando expr
O sea, el comando expr nos sirve para resolver expresiones matemáticas en la terminal, con él podemos calcular lo que necesitemos. Por ejemplo, si queremos que nos aparezca el resultado de 1 + 2 * 8 / 3 ponemos en la terminal:
expr 1 + 2 \* 8 / 3
Y en pantalla nos aparecerá el resultado. Aquí les dejo un screenshot con algunos ejemplos:
En caso de que queramos asignarle a una variable el resultado de una expresión matemática (Ej: 10/2), sería así:
variable=`expr 10 / 2`
Luego lo comprobamos con:
echo $variable
Comando calc
Este a diferencia del anterior sí es exacto en cuanto a los decimales, ejemplo:
calc 15 / 4
Nos mostraría: 3.75
Aquí les dejo un screenshot con varios ejemplos:
Bueno, esto es básicamente lo que quería comentarles.
No obstante, aún hay algunos otros tips interesantes de cada comando (especialmente de calc), les recomiendo que sea lean el manual:
man calc
man expr
Saludos
11 comentarios, deja el tuyo
Muy útil, aunque definitivamente no sería bueno usar Bash para cálculos matemáticos, los decimales cuentan 😀
Sr. elav aun tenemos bash calculator 🙂 podemos utilizar el argumento -l para que utilice la libreria standard math
algo así
$ echo "(4/8)+(6/9)" | bc -l
1.166666666666666666666666
ha
😀
Excelente. Así ne evito la molestia de instalar el XCalc a la hora de usar el X11 puro.
Oh no conocía este, genial!!
Gracias, es bastante útil 😉
Gracias ^_^
Gracias. A la calculadora del sistema le ha salido competidor para operaciones básicas.
Gracias a ti por leernos 🙂
Buen tip!
no me gusto