Recibiendo error en el script bash; Expr $ a + 1 expresión entera esperada

Recibiendo error en el script bash; Expr $ a + 1 expresión entera esperada

Bash es un intérprete de línea de comandos popular que se usa comúnmente en sistemas basados ​​en Linux y UNIX, ya que permite a los usuarios ejecutar comandos y scripts en el terminal. Uno de los errores más comunes que los usuarios encuentran cuando trabajan con Bash es el "Expr: Se esperaba expresión entera" error. Este artículo analizará más de cerca este error, por qué ocurre y cómo corregirlo, por lo que si se enfrenta al mismo error, lea esta guía.

¿Cuál es el error "Expr: Integer Expression esperado"?

El "Expr: Se esperaba la expresión entera"Error es un mensaje de error generado por el shell bash cuando un usuario intenta ejecutar una expresión matemática que contiene caracteres no numéricos. El error generalmente se acompaña de un número de línea que indica dónde ocurrió el error en el script.

¿Por qué se produce el error "Expr: Integer Expression Se esperan"?

El "Expr: expresión entera esperada " El error ocurre cuando el usuario intenta realizar una operación matemática utilizando valores no numéricos. Por ejemplo, si un usuario intenta agregar una cadena a un número, el shell bash generará el "Expr: Se esperaba expresión entera" error. Veamos un ejemplo de código defectuoso que da este error:

#!/bin/bash
a = 0
b = 3
Mientras ["$ a" -lt $ b]
hacer
Echo $ A
a = "expr $ a + 1"
hecho

Aquí el código anterior usa el bucle while para continuar el proceso de adición que compara la primera variable, es decir a cuyo valor es 0, con la segunda variable b cuyo valor dado es 3. El bucle seguirá ejecutándose hasta que la condición se vuelva falsa, es decir, es menor que B, la adición se lleva a cabo utilizando el comando expr. El mensaje de error "Expr $ 0 + 1: Expresión entera esperada" indica que hay un problema con la forma en que el script está tratando de incrementar el valor de "a". El error es causado por usar doble comillas En lugar de backticks o el signo de dólar con paréntesis para ejecutar el comando "expr":

Para corregir el error, el script debe usar backticks (') Para ejecutar el comando "expr" y evaluar la expresión aritmética, por lo que aquí está el código correcto que usa los backticks:

#!/bin/bash
a = 0
b = 3
Mientras ["$ a" -lt $ b]
hacer
Echo $ A
a = 'expr $ a + 1'
hecho

Aquí acabo de reemplazar las cotizaciones dobles con los backticks y ahora el comando expr toma a Como entero y realiza la adición, esta condición en el bucle while se vuelve falso:

Conclusión

El "Expr: Se esperaba expresión entera" El error es un error común que ocurre en BASH cuando los usuarios intentan realizar operaciones matemáticas en valores no numéricos. Para corregir este error, es importante asegurarse de que todos los valores en nuestras expresiones matemáticas sean numéricas. Al hacerlo, podemos evitar este error y asegurarnos de que nuestros scripts se ejecuten según lo previsto.