Этот скрипт берет CSV-файл и выполняет итерации по нему, чтобы создать массив MD. Затем он берет третий столбец и сравнивает каждую переменную, чтобы определить, больше ли она 64. Я могу заставить его работать, если использую число 64, но он не будет работать при использовании объявленной константы с именем MAX_AGE.
Ниже представлено изображение скрипта с использованием -gt 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" ]