Какое правильное выражение даст правильный результат?

Какое правильное выражение даст правильный результат?

Этот скрипт берет CSV-файл и выполняет итерации по нему, чтобы создать массив MD. Затем он берет третий столбец и сравнивает каждую переменную, чтобы определить, больше ли она 64. Я могу заставить его работать, если использую число 64, но он не будет работать при использовании объявленной константы с именем MAX_AGE.

Ниже представлено изображение скрипта с использованием -gt MAX_AGE скрипт с объявленной константой MAX_AGE

Ниже приведена ошибка при использовании вышеуказанного скрипта. введите описание изображения здесь

Я знаю, что ответ, вероятно, будет простым...

решение1

-gtиспользуется для сравнения чисел, а не строк. Таким образом, вам нужно заменить:

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

с:

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

Причина в том, что MAX_AGEэто строка. Вы не можете использовать ее как число.

$MAX_AGE— это значение переменной MAX_AGE. Вы можете сравнить его с числом, если это значение можно интерпретировать как целое число.

Для достижения наилучших результатов при использовании [...]переменные следует заключать в двойные кавычки:

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

Связанный контент