Cómo agregar cálculos a un guión de bash

Cómo agregar cálculos a un guión de bash

Cómo agregar cálculos a un guión de bash

VALORACIÓN DEL ARTÍCULO:
5/5


Aunque Bash es un lenguaje de scripting, tiene casi todas las capacidades de un lenguaje de programación de propósito general. Esto incluye funciones aritméticas. Hay varias opciones de sintaxis que puedes usar para evocar la evaluación aritmética de una expresión. Quizás el más legible es el comando let. Por ejemplo

let "m = 4 * 1024"

se calculará 4 veces 1024 y asignará el resultado a la variable "m".

Puede imprimir el resultado añadiendo una sentencia echo:

let "m = 4 * 1024"
echo $m

Puede probar esto desde la línea de comandos introduciendo el siguiente código:

let "m = 4 * 1024"; echo $m

También puede crear un archivo que contenga los comandos Bash, en cuyo caso deberá añadir una línea en la parte superior del archivo que especifique el programa que debe ejecutar el código. Por ejemplo:

#!/bin/bash
let "m = 4 * 1024"
echo $m

asumiendo que el ejecutable Bash se encuentra en /bin/bash. También necesita establecer los permisos de su archivo de script para que sea ejecutable. Asumiendo que el nombre del archivo de script es script1.sh, puede establecer los permisos para que el archivo sea ejecutable con el comando:

chmod 777 script1.sh

Después de eso, puede ejecutarlo con el comando:

./script1.sh

Las operaciones aritméticas disponibles son similares a las de los lenguajes de programación estándar como Java y C. Además de la multiplicación, como se ilustra arriba, se utiliza la suma:

deje "m = a + 7"

o sustracción:

deje "m = a - 7"

o división:

deje "m = a / 2"

o modulo (el resto después de una división entera):

dejar "m = a % 100"

Cuando se aplica una operación a la misma variable a la que se asigna el resultado, se pueden utilizar los operadores de asignación abreviada aritmética estándar, también denominados operadores de asignación compuesta. Por ejemplo, por adición, tenemos:

dejar "m += 15"

que equivale a "m = m + 15". Para la sustracción que tenemos:

dejar "m -= 3"

que equivale a "m = m - 3". Para la división que tenemos:

deje "m /= 5"

que equivale a "m = m / 5". Y para modulo, tenemos:

let "m %= 10"

que equivale a "m = m % 10".

Además, puede utilizar los operadores increment y decrement:

deje "m++"

es equivalente a "m = m + 1". Y

deja "m--"

es equivalente a "m = m - 1".

Y luego está el operador ternario "signo de interrogación-colon", que devuelve uno de dos valores dependiendo de si la condición especificada es verdadera o falsa. Por ejemplo

que "k = (m < 9) ? 0 : 1"

La parte derecha de esta sentencia de asignación se evalúa a "0" si la variable "m" es inferior a 9. En caso contrario, se evalúa a 1. Esto significa que a la variable "k" se le asigna "0" si "m" es menor que 9 y "1" en caso contrario.

La forma general del operador de signo de interrogación-colon es:

condición ? value-if-true : value-if-false

Aritmética en coma flotante en Bash

El operador let sólo funciona para la aritmética de números enteros. Para la aritmética en coma flotante puede usar, por ejemplo, la calculadora GNU bc como se ilustra en este ejemplo:

echo "32.0 + 1.4" | bc 

El operador "pipe" "|" pasa la expresión aritmética "32.0 + 1.4" a la calculadora bc, que devuelve el número real. El comando echo imprime el resultado en la salida estándar.

Sintaxis alternativa para Aritmética

Los Backticks (comillas al reverso) pueden ser usados para evaluar una expresión aritmética como en este ejemplo:

echo `expr $m + 18`

Esto sumará 18 al valor de la variable "m" y luego imprimirá el resultado.

Para asignar el valor de cálculo a una variable se puede utilizar el signo igual sin espacios a su alrededor:

m=`expr $m + 18`

Otra forma de evaluar las expresiones aritméticas es usar paréntesis dobles. Por ejemplo:

(( m *= 4 ))

Esto cuadruplicará el valor de la variable "m".

Además de la evaluación aritmética, el intérprete de comandos Bash proporciona otras construcciones de programación, tales como bucles, bucles while-loops, condicionales y funciones y subrutinas.

TAMBIÉN TE INTERESA

tarjetas gráficas ASUS y monitores ASUS

Con estas tarjetas gráficas ASUS y este monitor simplemente irás volando…

ASUS se ha convertido, por méritos propios, en una de las marcas más fiables en el mundo del gaming, lo cual también es compatible con equipos ideales para todo. Dos de sus componentes más destacados acaban de recibir actualización de modelos: hablamos de dos nuevas tarjetas gráficas ASUS y un monitor que, con poco que

ZTE-nubia-Neo-5G

ZTE nubia Neo 5G: el móvil gaming más futurista y accesbible

ZTE presenta el nuevo ZTE nubia Neo 5G en España, bajo el lema «Mejor Gaming para Todos». Este dispositivo, dirigido al sector gamer, destaca por su combinación de potencia y rendimiento a un precio asequible, ofreciendo un procesador UNISOC T820 de hasta 2,7 GHz, una pantalla de 120Hz, conectividad 5G y hasta 18GB de RAM,

Sora

Sora, lo último de OpenAI para generar vídeos por inteligencia artificial

La IA Generativa vuelve a dar un paso más impulsada por la empresa que ha protagonizado el gran boom de esta tecnología. OpenAI acaba de dar a conocer Sora, que se presenta como la nueva solución de esta entidad para generar vídeos siguiendo las instrucciones de los usuarios. A priori, uno puede pensar que los

la-IA-estará-detrás-de-todas-nuestras-compras-online

En poco tiempo, la IA estará detrás de todas nuestras compras online…

No sería descabellado pensar que la IA estuviera detrás de todas nuestras compras online en no mucho tiempo. El sector se mueve en estos momentos para proponer soluciones a los ecommerce y el cliente final termina por dejarse guiar por un sistema que va más allá de unas simples recomendaciones. Y es que las herramientas