bash 스크립트(조건이 이메일을 보내야 하는 경우)

bash 스크립트(조건이 이메일을 보내야 하는 경우)

조건이 충족되는 경우에만 이메일을 보내야 하는데 다음 스크립트를 실행하면 오류가 발생합니다.

file='/somewhere/here/file.txt'
value=$(cat "$file")
if [$value < 99]; then
     echo "$value" | mailx -s "title"  [email protected]
fi

내가받는 오류는 다음과 같습니다.

[line 4: 99]: No such file or directory

파일 권한: 0755

"/somewhere/here/file.txt" 파일이 존재합니다

답변1

모든 프로그래밍 언어에는 고유한 구문이 있으므로 새 언어를 시도하기 전에 반드시 설명서를 읽어야 한다는 점을 명심하세요. 셸에서는 <"보다 작음"을 의미하지 않고 "이 파일을 입력으로 사용"을 의미합니다. 수치 비교를 하려면 -lt"보다 작음"이 필요합니다.

또한 [및 주위에는 항상 공백이 필요합니다 ]. 그래서 당신이 쓰고 싶은 내용은 다음과 같습니다.

if [ "$value" -lt 99 ]; then
     echo "$value" | mailx -s "title"  [email protected]
fi

자세한 내용은 help test및 을 참조하십시오 man bash.

관련 정보