실수와 정수의 사칙연산

Shell에서는 기본적으로 정수만 사칙 연산이 된다. 그래서 8.0이 0보다 크냐고 조건문을 만들면 integer 값이 필요하다며 거부한다. 매우 빡치는 일이지만 해결 방법은 있다. 내가 이용한 방법은 bc를 이요한 것이다.

echo "사칙연산" | bc

이렇게 하면 연산이 가능하다.

12.0 > 0의 참/거짓을 판단을 하면 된다. 참일 경우는 1, 거짓일 경우는 0을 출력한다. 이를 이용한다.

if [ $(echo "${NUM1} > 0" | bc) -eq 1 ]; then
  명령어
fi