Operaciones aritméticas de bash

Hacer operaciones aritméticas en bash no es similar a otros lenguajes de programación estándar. Una de las limitaciones de bash es que no puede manejar números de coma flotante o dobles como otros lenguajes de scripting. Otra herramienta de comando se usa en bash para resolver este problema. En este tutorial se muestran diferentes tipos de operaciones aritméticas utilizando diferentes ejemplos.

Ejemplo – 1: uso del comando ‘expr’

El comando más antiguo para realizar operaciones aritméticas en bash es ‘ expr ‘. Este comando puede funcionar solo con valores enteros e imprime la salida directamente en la terminal. Tienes que usar un espacio con cada operando cuando quieras usar el comando expr’ para hacer cualquier operación matemática. Cree un archivo bash y agregue los diversos comandos ‘expr’ para verificar cómo funciona el comando ‘expr’ .

#!/bin/bash
 
# Works as string
expr ’10 + 30′
 
# Works as string
expr 10+30
 
#Perform the addition
expr 10 + 30
 
#Find out the remainder value
expr 30 % 9
 
#Using expr with backtick
myVal1=`expr 30 / 10`
echo $myVal1
 
#Using expr within command substitute
myVal2=$( expr 3010 )
echo $myVal2

Ejecute el archivo arith1.sh.

$ bash arith1.sh

 Producción:

El resultado muestra que los operadores aritméticos funcionaron solo cuando se usa espacio con cada valor numérico y no se usa una sola cita con el comando expr . También puede asignar la salida del comando expr a una variable e imprimir la variable más tarde usando comillas invertidas o sustituto de comando. 30/10 se calcula usando comillas invertidas y 30-10 se calcula usando comando sustituto .

Ejemplo – 2: uso del comando ‘dejar’

‘let’ es otro comando incorporado para realizar operaciones aritméticas en bash. El comando ‘let’ no puede imprimir la salida al terminal sin almacenar el valor en una variable. Pero el comando ‘let’ se puede usar para eliminar las otras limitaciones del comando ‘expr’ . Cree un archivo bash y agregue el siguiente código para ver cómo funciona el comando ‘let’ .

#!/bin/bash
 
# Multiplying 9 by 8
let val1=9*3
echo $val1
 
# Dividing 8 by 3
let “val2= 8 / 3”
echo $val2
 
# Subtracting 3 from 9
let val3=93
echo $val3
 
# Applying increment
let val4=7
let val4++
echo $val4
 
# Using argument value in arithmetic operation
let “val5=50+$1”
echo $val5

Ejecute el archivo arith2.sh.

$ bash arith2.sh

Producción:

El resultado muestra que el comando ‘let’ es más flexible que el comando expr ‘. Puede evaluar cualquier expresión aritmética con o sin comillas. Pero no puedes usar el espacio dentro de ninguna expresión matemática. Puede utilizar el operador de incremento o decremento en el comando ‘dejar’ . En la última parte del ejemplo se muestra cómo se puede realizar la operación aritmética con valores de argumento usando el comando ‘let’ .

Ejemplo – 3: uso de corchetes dobles

Puede realizar cualquier operación aritmética en bash sin usar ningún comando. Aquí, los corchetes dobles se utilizan para hacer las tareas aritméticas y el uso de corchetes dobles para ejecutar expresiones matemáticas es más flexible que comandos como ‘expr’ o ‘let’ . Cree un archivo bash y agregue el siguiente código para probar las operaciones aritméticas usando corchetes dobles.

#!/bin/bash
 
# Calculate the mathematical expression
val1=$((10*5+15))
echo $val1
 
# Using post or pre increment/decrement operator
((val1++))
echo $val1
val2=41
((–val2))
echo $val2
 
# Using shorthand operator
(( val2 += 60 ))
echo $val2
 
# Dividing 40 by 6
(( val3= 40/6 ))
echo $val3

Ejecute el archivo arith3.sh.

$ bash arith3.sh

Producción:

El resultado muestra que los corchetes dobles pueden ejecutar cualquier expresión matemática con espacio o sin espacio y también puede usar operadores de incremento / decremento y taquigrafía en expresiones de corchetes dobles.

Ejemplo – 4: uso del comando ‘bc’ para números flotantes o dobles

Una de las principales limitaciones de las formas anteriores de realizar operaciones aritméticas en bash es que ‘ expr ‘ o ‘let’ o la expresión de corchetes dobles no pueden producir números de punto flotante o dobles. La salida de las operaciones de división de los ejemplos anteriores son números enteros. El comando ‘bc’ se puede usar para resolver este problema y funciona como una calculadora básica para el sistema operativo Linux. Cree un archivo bash y agregue el siguiente código para verificar el uso del comando ‘bc’ en operaciones aritméticas.

#!/bin/bash
 
# Dividing 55 by 3 with bc only
echo “55/3” | bc
 
# Dividing 55 by 3 with bc and -l option
echo “55/3” | bc -l
 
# Dividing 55 by 3 with bc and scale value
echo “scale=2 55/3” | bc

Ejecute el archivo arith3.sh.

$ bash arith4.sh

Producción:

La salida muestra que el comando bcsimple produce un valor entero como otras opciones cuando se ejecuta cualquier expresión de división. El comando bc -l’ genera una salida exacta de la división y puede limitar la parte fraccionaria usando el valor de escala . Aquí, se usa scale= 2 . Entonces, la salida muestra 2 dígitos después del punto decimal.

Puede aplicar cualquiera de las formas mencionadas para realizar operaciones aritméticas en bash según sus requisitos.

¡Para más información mira el video !

Leave a Comment

Your email address will not be published. Required fields are marked *

Hazlo Linux