Mostrando las entradas con la etiqueta bash. Mostrar todas las entradas
Mostrando las entradas con la etiqueta bash. Mostrar todas las entradas

sábado, 9 de marzo de 2019

Como hacer calculos matematico en bash de linux

De vez en cuando necesito hacer algún calculo matemático durante la ejecución de un bash en linux, luego de probar varios métodos me decidí por utilizar el comando bc, que es la implementación de "Un lenguaje de calculo de precisión arbitraria."

la forma mas simple de usarlo es pasando la operación a calcula vi la entrada estándar, por ejemplo para calcula pi:

echo "scale=10; 4*a(1)" | bc -l
3.1415926532

usando la función arco-tangente se calcula pi con 10 decimales, o calcular una simple multiplicación y división

echo "scale=10; 100*12.34/23" | bc -l
53.6521739130

o generar un archivo con los pasos a calcular

              scale = 20

              /* Uses the fact that e^x = (e^(x/2))^2
                 When x is small enough, we use the series:
                   e^x = 1 + x + x^2/2! + x^3/3! + ...
              */

              define e(x) {
                auto  a, d, e, f, i, m, v, z

                /* Check the sign of x. */
                if (x<0) {
                  m = 1
                  x = -x
                }

                /* Precondition x. */
                z = scale;
                scale = 4 + z + .44*x;
                while (x > 1) {
                  f += 1;
                  x /= 2;
                }

                /* Initialize the variables. */
                v = 1+x
                a = x
                d = 1

                for (i=2; 1; i++) {
                  e = (a *= x) / (d *= i)
                  if (e == 0) {
                    if (f>0) while (f--)  v = v*v;
                    scale = z
                    if (m) return (1/v);
                    return (v/1);
                  }
                  v += e
                }
              }

bc permite expresiones, loop como for, while o funciones conficionales como if
NOTA: scale indica la precisión del calculo

Espero que les sea util

sábado, 13 de agosto de 2016

Aritmética en bash

Cada cierto tiempo en los script en bash necesito implementar un contador, sumar dos números o  realizar alguna operación aritmética, buscando descubrí que existe una forma sencilla de realizar estas operaciones dentro de un script bash, con el siguiente formato:
$((expresión aritmética))
Ejemplos
$(( 2 + 3 ))
$(( x *3 ))
$(( 2 / 3 ))
Esto puede realizar tanto con variables que contengan un número como con constantes o números, un ejemplo básico de un script seria:
#!/bin/bash
x=15
y=10
suma=$(( x + y ))
echo "$x + $y = $suma"
Al ejecutar entregaría
15 + 10 = 25
Operaciones con Enteros
Operador
Descripción
Ejemplo
Valor
+
Adición (suma)
echo $(( 20 + 15 ))
35
-
Sustracción (resta)
echo $(( 20 - 7 ))
13
/
División
echo $(( 20 / 4 ))
5
*
Multiplicación
echo $(( 20 * 3 ))
60
 %
Modulo
echo $(( 20 % 6 ))
2
++
post-incremento (agrega 1 a la variable)
x=4
echo $(( x++ ))
echo $(( x++ ))

4
5
--
post-decremento (resta 1 a la variable)
x=7
echo $(( x-- ))
echo $(( x-- ))  

7
6
**
Exponencial
x=2
y=3
echo $(( x ** y ))
8

Instalación rapida de kvm manager de oracle

 Para instalar kvm manager de oracle se deben seguir los siguientes pasos: Instalar Oracle Linux 7 configurar el fqdn en el archivo /etc/hos...