숫자 변수에 대한 산술 구문 오류

숫자 변수에 대한 산술 구문 오류

산술 구문 오류로 인해 어려움을 겪고 있습니다.

명령줄에서 텍스트 파일 이름을 읽고 각 파일의 줄 수를 세고 있습니다.

NUM=$(wc -l "$text") 

그런 다음 NUM이 홀수인지 확인하고 싶습니다.

그래서 나는 말했다.

REMAINDER=$(( $NUM % 2 ))
if [ $REMAINDER -ne 0 ] ; then 
    echo "Odd number"
fi

그런데 문제가 있는 것 같다.

REMAINDER=$(( $NUM % 2 ))

$NUM은 숫자가 아닌 ".txt" 파일로 처리되는 것 같습니다. NUM만 확인해보니 잘 되더라구요...

답변1

$NUM인쇄 하면

NUM=$(wc -l "$text") 

(Linux에서는) 같은 줄에 공백이 포함된 숫자와 파일 이름이 표시될 수 있습니다.

예를 들어:

1842 basic.c

문자열은 숫자가 아닙니다. 일반적으로 첫 번째 토큰과 사용할 쉘/sed/awk 등을 읽습니다.저것숫자로.

@steeldriver는 다음과 같은 번호를 얻을 것을 제안했습니다.

NUM=$(wc -l < "$text")

작동합니다(데비안으로 테스트).

관련 정보