올바른 결과를 생성하는 올바른 표현은 무엇입니까?

올바른 결과를 생성하는 올바른 표현은 무엇입니까?

이 스크립트는 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" ]

관련 정보