¿Cuál es la expresión correcta para generar el resultado correcto?

¿Cuál es la expresión correcta para generar el resultado correcto?

Este script toma un archivo CSV y lo itera para crear una matriz MD. Luego toma la tercera columna y compara cada variable para determinar si es mayor que 64. Puedo hacer que funcione si uso el número 64, pero no funcionará cuando use una constante declarada llamada MAX_AGE.

A continuación se muestra una imagen del script usando -gt MAX_AGE script con constante declarada MAX_AGE

A continuación se muestra el error al utilizar el script anterior. ingrese la descripción de la imagen aquí

Sé que la respuesta probablemente sea algo simple...

Respuesta1

-gtse utiliza para comparar números, no cadenas. Por lo tanto, es necesario reemplazar:

[ ${ages[i]} -gt MAX_AGE ]

con:

[ ${ages[i]} -gt $MAX_AGE ]

La razón de esto es que MAX_AGEes una cadena. No puedes usarlo como un número.

$MAX_AGEes el valor de la variable MAX_AGE. Puede compararlo con un número siempre que ese valor pueda interpretarse como un número entero.

Para obtener mejores resultados al utilizar [...], las variables deben estar entre comillas dobles:

[ "${ages[i]}" -gt "$MAX_AGE" ]

información relacionada