Operación aritmética de Bash

Operación aritmética 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 el punto flotante o los números dobles como otros idiomas de secuencia de comandos. 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 hacer operaciones aritméticas en Bash es 'expr'. Este comando puede funcionar solo con valores enteros e imprime la salida directamente en el terminal. Debe usar espacio con cada operando cuando desee usar el 'expr'Comando para hacer cualquier operación matemática. Crear un archivo bash llamado expr.intento con el siguiente script para conocer el uso de 'expr' dominio.

#!/bin/bash
# Funciona como la cadena
Expr '10 + 30 '
# Funciona como la cadena
Expr 10+30
#Performice la adición
Expr 10 + 30
#Encuentra el valor restante
Expr 30 % 9
#Uso de expr con backtick
myVal1 = 'expr 30/10'
echo $ myVal1
#Uso de Expr dentro del sustituto del comando
myVal2 = $ (expr 30 - 10)
echo $ myVal2

Ejecute el siguiente comando para ejecutar el script.

$ bash expr.intento

Producción:
La salida muestra que los operadores aritméticos funcionaban solo cuando el espacio se usa con cada valor numérico y no se usa una sola cotización con el expr dominio. También puede asignar la salida del expr comando en una variable e imprima la variable más tarde utilizando retroceso o sustituto de comando. 30/10 se calcula usando retroceso y 30-10 se calcula usando sustituto de comando.

Ejemplo - 2: Usando el comando 'Let'

'dejar' es otro comando incorporado para hacer operaciones aritméticas en Bash. 'dejar' El comando no puede imprimir la salida al terminal sin almacenar el valor en una variable. Pero El 'Let' El comando se puede usar para eliminar las otras limitaciones del 'Expr' dominio. Crear un archivo bash llamado dejar.intento con el siguiente script para conocer el uso del 'dejar' dominio.

#!/bin/bash
# Multiplicar 9 por 8
Sea val1 = 9*3
Echo $ val1
# Dividir 8 por 3
Deje "val2 = 8/3"
echo $ val2
# Restando 3 de 9
Deje val3 = 9-3
echo $ val3
# Aplicar incremento
Sea val4 = 7
Deja que Val4++
echo $ val4
# Uso del valor de argumento en la operación aritmética
Deje "Val5 = 50+$ 1"
echo $ val5

Ejecute el siguiente comando para ejecutar el script.

$ Bash Let.Bash 50

Producción:

La salida muestra que El 'Let' El comando es más flexible que el 'expr' dominio. Puede evaluar cualquier expresión aritmética con o sin citas. Pero no puedes usar espacio dentro de ninguna expresión matemática. El operador de incremento o de disminución se puede usar en el 'dejar' dominio. Cómo se puede hacer la operación aritmética con los valores de argumento utilizando el 'dejar'El comando se muestra en la última parte del ejemplo.

Ejemplo - 3: Uso de corchetes

Cualquier operación aritmética se puede hacer en Bash sin usar ningún comando. Aquí, se utilizan corchetes dobles para realizar las tareas aritméticas, y usar soportes dobles para ejecutar expresiones matemáticas es más flexible que el comando como el 'expr' o 'dejar'. Crear un archivo bash llamado DBL.Bash con el siguiente script para probar las operaciones aritméticas utilizando corchetes dobles.

#!/bin/bash
# Calcule la expresión matemática
val1 = $ ((10*5+15))
Echo $ val1
# Uso del operador POST o PRECRENMA/DIREMENT
((val1 ++))
Echo $ val1
Val2 = 41
((--val2))
echo $ val2
# Uso del operador de taquigrafía
((val2 += 60))
echo $ val2
# Dividir 40 por 6
((val3 = 40/6))
echo $ val3

Ejecute el siguiente comando para ejecutar el script.

$ bash dbl.intento

Producción:

La salida muestra que los soportes dobles pueden ejecutar cualquier expresión matemática con espacio o sin espacio y también puede usar operadores de incremento/disminución y taquitria en expresiones dobles de soportes.

Ejemplo - 4: Uso del comando 'BC' para números flotantes o dobles

Una de las principales limitaciones de las formas anteriores de hacer operaciones aritméticas en Bash es que 'expr' o 'dejar' o corchetes Las expresiones no pueden producir números de punto flotante o doble. La salida de las operaciones de división de los ejemplos anteriores son enteros. 'antes de Cristo'El comando se puede usar para resolver este problema y funciona como una calculadora básica para el sistema operativo Linux. Crear un archivo bash llamado antes de Cristo.intento con el siguiente script para conocer el uso de el 'BC' Comando en operaciones aritméticas.

#!/bin/bash
# Dividir 55 por 3 solo con BC
Echo "55/3" | antes de Cristo
# Dividir 55 por 3 con opción BC y -L
Echo "55/3" | BC -L
# Dividir 55 por 3 con BC y valor de escala
echo "escala = 2; 55/3" | antes de Cristo

Ejecute el siguiente comando para ejecutar el script.

$ Bash BC.intento

Producción:
La salida muestra que el simple 'antes de Cristo'El comando produce un valor entero como otras opciones cuando se ejecuta cualquier expresión de división. 'BC -L'El comando genera la salida exacta de la división y puede limitar la parte fraccional usando escala valor. Aquí, escala = 2 se usa. Entonces la salida muestra 2 dígitos después del punto decimal.

Ejemplo-5: usando el comando printf para flotación o número doble

El 'printf'El comando es otra forma de trabajar con datos fraccionarios. Este comando se puede utilizar para generar el valor de punto flotante de manera más eficiente que el comando 'BC' después de la operación aritmética. Este comando también se puede usar para calcular la potencia de un número. Los usos del 'printf'El comando para diferentes operaciones aritméticas se ha mostrado en este ejemplo. Crear un archivo bash llamado PRN.intento con el siguiente script para verificar el uso del comando 'printf' para la salida fraccional de la división de dos números.

#!/bin/bash
# Tome el valor de dividendos del usuario
Leer -P "Ingrese el valor de dividendo:" N1
# Tome el valor del divisor del usuario
Leer -P "Ingrese el valor del divisor:" N2
# Encuentra la división usando 'Echo' y 'BC'
echo "escala = 2; $ n1/$ n2" | bc
# Encuentra la división usando 'printf'
printf "%.2f \ n "" $ ((10 ** 2*$ n1/$ n2)) E-2 "

Ejecute el siguiente comando para ejecutar el script.

$ Bash PRN.intento

Producción:
La siguiente salida muestra que el valor de división generado por los comandos 'bc' e 'printf' de dos números enteros son los mismos.

La siguiente salida muestra que cuando el valor de dividendos es un número de punto flotante, entonces el valor de división generado por el comando 'BC' es correcto, pero el comando 'printf' generó un error.

Crear un archivo bash llamado PRN2.intento con el siguiente script para conocer el uso del comando 'printf' para la salida fraccional correcta cuando el valor de dividendos es un número de punto flotante.

#!/bin/bash
# Tome el valor de dividendos del usuario
Leer -P "Ingrese el valor de dividendo:" N1
# Tome el valor del divisor del usuario
Leer -P "Ingrese el valor del divisor:" N2
# Encuentra la división usando 'printf', 'echo' y 'bc'
printf "%.2f \ n "'echo $ n1/$ n2 | bc -l'

Ejecute el siguiente comando para ejecutar el script.

$ bash prn2.intento

Producción:
La salida muestra que el comando 'printf' con "BC 'genera la salida correcta.

Ejemplo-6: Uso del comando AWK para la operación aritmética

El uso del comando 'AWK' es otra forma de realizar la operación aritmética que puede generar la salida correctamente para los números de punto flotante. Las operaciones aritméticas utilizando el comando 'AWK' sin formatear y con formato se han mostrado en este ejemplo. Crear un archivo bash llamado asombrar.intento con el siguiente script para verificar el uso del comando 'AWK' para la operación aritmética.

#!/bin/bash
# Inicializar el valor de dividendos
N1 = 90
# Inicializar el valor del divisor
N2 = 43
# Imprimir la salida sin formar
AWK "Begin imprimir $ N1/$ N2"
# Imprima la salida con formato
AWK "Begin printf"%.2f \ n ", $ n1/$ n2"

Ejecute el siguiente comando para ejecutar el script.

$ Bash Awk.intento

Producción:
La salida muestra que el comando 'AWK' puede generar una salida fraccional apropiada.

Ejemplo-7: Calcule el porcentaje de un valor

A veces necesitamos calcular el valor porcentual de criterios particulares. El porcentaje se puede calcular en BASH utilizando el comando 'printf' y el comando 'echo'. Supongamos que necesitamos averiguar el porcentaje de estudiantes aprobados en un examen basado en el número total de estudiantes y los estudiantes aprobados totales. La solución a este problema se ha mostrado en este ejemplo. Cree un archivo bash con el siguiente script para calcular el valor porcentual de los estudiantes aprobados utilizando el comando 'printf'.

#!/bin/bash
# Tome el número total de estudiantes del usuario
Leer -P "Número total de estudiantes:" Total_std
# Tome el número total de estudiantes aprobados del usuario
Leer -P "Número total de estudiantes aprobados:" pase_std
# Calcule el porcentaje de estudiantes aprobados
printf "El porcentaje de estudiantes aprobados: %.2f %% \ n "" $ ((10 ** 3 * 100 * $ pass_std/$ total_std)) E-3 "

Ejecute el siguiente comando para ejecutar el script.

$ Bash porcentaje.intento

Producción:
La producción muestra el porcentaje de estudiantes que pasan en función del número total de estudiantes y los estudiantes aprobados.

Conclusión

Los usos de diferentes operadores aritméticos en Bash y las formas de realizar las operaciones aritméticas utilizando diferentes comandos se han mostrado en este tutorial mediante el uso de múltiples ejemplos para ayudar a los usuarios de Bash.