bash: 정수 표현식이 필요합니다.

bash: 정수 표현식이 필요합니다.

out.csv 파일이 있는데 사용자가 입력한 이름이 파일에 있는지 확인해야 합니다(쉼표로 구분). 이름을 가져오기 위해 읽기를 사용하고 있지만 동등성을 확인하는 동안 오류가 발생합니다.

    IFS=","
    while read tname tnum
        do
            if [ $tname -eq $name ]; then
                flag=1
                break
            fi
        done < out.csv
    echo "$ch"

답변1

-eq이 오류는 정수 , -ne, -gt및 유사한 정수 함수 에 대한 항등 연산자를 사용하여 문자열을 비교하려고 하기 때문에 발생합니다 .

문자열을 비교하려면 =같음 비교 또는 !=같지 않음 비교를 사용하세요.

확인하다이것비교 연산자에 대한 추가 정보

if [ $tname -eq $name ]; then

다음과 같이 변경되어야 합니다:

if [ "$tname" = "$name" ]; then

(또한 변수를 인용하는 것을 잊지 마십시오).

관련 정보