Qual é a expressão correta para gerar o resultado correto?

Qual é a expressão correta para gerar o resultado correto?

Este script pega um arquivo CSV e itera sobre ele para criar um array MD. Em seguida, ele pega a terceira coluna e compara cada variável para determinar se é maior que 64. Posso fazê-la funcionar se usar o número 64, mas não funcionará ao usar uma constante declarada chamada MAX_AGE.

Abaixo está uma imagem do script usando -gt MAX_AGE script com constante declarada MAX_AGE

Abaixo está o erro ao usar o script acima insira a descrição da imagem aqui

Eu sei que a resposta provavelmente é algo simples.......

Responder1

-gté usado para comparar números, não strings. Assim, você precisa substituir:

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

com:

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

A razão para isso é que MAX_AGEé uma string. Você não pode usá-lo como um número.

$MAX_AGEé o valor da variável MAX_AGE. Você pode comparar isso a um número, desde que esse valor possa ser interpretado como um número inteiro.

Para obter melhores resultados ao usar [...], as variáveis ​​devem ser colocadas entre aspas duplas:

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

informação relacionada