Cómo hacer cálculos decimales en BASH usando BC
- 3178
- 124
- Sta. Enrique Santiago
A veces se requieren cálculos decimales en Bash. El idioma de programación de bash de cálculo estándar ($ []) no puede proporcionar una salida decimal. Mientras que podemos engañarlo para calcular (pero no generar) una salida decimal multiplicando los números, por ejemplo, un factor de 1000 y luego haciendo una división basada en texto, este es una solución fea y crea un código complejo. Sin embargo, hay una utilidad en Bash que puede hacer de manera nativa los cálculos basados en decimales sin ningún truco o solución!
En este tutorial aprenderás:
- Cómo usar BC para realizar cálculos decimales
- Cómo hacer cálculos basados en decimales en la línea de comandos Bash o desde sus scripts
- Cómo usar variables para almacenar los resultados producidos por BC
- Cómo usar variables en cálculos adicionales
- Cómo evitar los errores de cotización de la variable Bash
Requisitos y convenciones de software utilizados
Categoría | Requisitos, convenciones o versión de software utilizada |
---|---|
Sistema | Independiente de la distribución de Linux |
Software | Línea de comando bash, sistema basado en Linux |
Otro | Cualquier utilidad que no esté incluida en el shell bash de forma predeterminada se puede instalar utilizando sudo apt-get instalación de utilidad de utilidad (o yum instalación para sistemas basados en redhat) |
Convenciones | # - requiere que los comandos de Linux se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio$-Requiere que los comandos de Linux se ejecuten como un usuario regular no privilegiado |
Instalación de BC
Para instalar BC en Ubuntu, Mint o cualquier otro sistema operativo basado en Debian/APT, escriba:
$ sudo apt instalación bc
Para instalar BC en Fedora, Redhat o cualquier otro sistema operativo basado en Redhat/Yum, escriba:
$ sudo yum instalación bc
Cálculos BASH predeterminados
Podemos hacer un problema de división simple directamente en Bash:
$ Echo $ [13/4] 3
Esto intenta y divide 13 por 4 usando el idioma de la bash estándar $ [Cálculo]
. Mientras que esto es bastante versátil:
$ echo "1+1? La respuesta es: $ [1 + 1] "1 + 1? La respuesta es: 2
Lamentablemente no puede emitir decimales. Las soluciones de este problema son complejas y feas como se describió anteriormente.
BC al rescate
Una solución más elegante es usar antes de Cristo
para cálculos.
Mientras que BC también se puede usar para los mismos cálculos que ya sea posible en Bash:
$ Echo '13 / 4 '| BC 3
También es capaz de producir resultados basados en decimales utilizando el -l
(-l
Define la biblioteca de matemáticas estándar) opción para antes de Cristo
:
$ Echo '13 / 4 '| BC -L 3.2500000000000000000000
Almacenar resultados como variables
También podemos almacenar el resultado como una variable utilizando una subshell:
$ Resultado = $ (echo '13/4 '| bc -l) $ echo $ resultado 3.2500000000000000000000
Aquí usamos el mismo cálculo que en el último ejemplo, pero usamos una subshell ps
Para hacer el cálculo. Esto nos permite almacenar el resultado en una variable fácilmente. Ahora podemos usar esta variable más en otros cálculos, o simplemente generar el resultado como se muestra arriba. Para usarlo en otro cálculo, puede:
$ echo "$ resultado * 4" | BC -L 13.0000000000000000000000
Tenga en cuenta cómo utilizamos cotizaciones dobles esta vez para definir nuestra aritmética. La razón de esto es que queremos el $ Resultado
variable para ser sustituido por su valor real. Si hubiéramos usado citas individuales ('
) En cambio, la operación habría fallado ya que el nombre de la variable se habría tomado como una entrada literal. En otras palabras, ninguna sustitución de su valor habría sucedido, como podemos ver desde la siguiente salida:
$ echo '$ resultado * 4' | BC -L (Standard_in) 1: Carácter ilegal: $ (Standard_in) 1: Error de sintaxis
Listo para aprender más Bash? Explore nuestra útil serie de consejos y trucos de la línea de comandos Bash!
Conclusión
En este artículo, exploramos cómo hacer cálculos basados en decimales con antes de Cristo
en la línea de comando. Los mismos comandos funcionan bien cuando se usan desde un script de shell. También observamos las deficiencias del uso de modismos de cálculo de bash estándar, así como el uso de variables en combinación con antes de Cristo
Usando subshells. Finalmente descubrimos lo que sucede si uno cita incorrectamente variables en Bash.
Tutoriales de Linux relacionados:
- Ubuntu 20.04 trucos y cosas que quizás no sepas
- Ejemplos de consejos y trucos de comandos de comandos útiles - Parte 3
- Ejemplos de consejos y trucos de comandos de comandos útiles - Parte 1
- Bash Avanzado Variable Idióms para la sensibilidad de los casos ..
- Ejemplos de consejos y trucos de comandos de comandos útiles - Parte 4
- Ejemplos de consejos y trucos de comandos de comandos útiles - Parte 2
- Ejemplos de consejos y trucos de comandos de comandos útiles - Parte 5
- Cómo persistir los datos a PostgreSQL en Java
- Gestión de procesos de fondo bash
- Conceptos básicos de matemáticas de la computadora: binaria, decimal, hexadecimal, octal
- « Cómo eliminar el bloatware de su teléfono móvil Samsung Android
- Cómo actualizar Firefox en Linux »