산술 구문 오류로 인해 어려움을 겪고 있습니다.
명령줄에서 텍스트 파일 이름을 읽고 각 파일의 줄 수를 세고 있습니다.
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")
작동합니다(데비안으로 테스트).