adsense_in_article_test


[bash: bc, if] 실수(부동소수점) 수자의 크기 비교 리눅스 bash script

리눅스 bash 스크립트의 if 조건문에서 정수(integer)의 크기 비교는 기본적으로 제공된다.

x=2
y=-1


if (( $x > $y ))
then
  echo "x의 값이 y의 값보다 큽니다."
fi


if [[ $x -gt $y ]]
then
  echo "x의 값이 y의 값보다 큽니다."
fi


만약 비교하고자 하는 수자가 실수(부동소수점)인 경우에는 위의 예시와 같은 비교를 할 수 없다. 이럴때는 bc와 조합을 하면 되겠다. 우선 bc와 관련한 아래의 예시를 보자.

x=2.34
y=0.45


# x의 값이 y의 값보다 크면 1을 출력, 그렇지 않으면 0을 출력
echo "$x > $y" | bc

# x의 값이 y의 값과 같으면 1을 출력, 그렇지 않으면 0을 출력
echo "$x == $y" | bc

위의 예시를 if 조건문과 조합하면 아래와 같이 비교를 할 수 있다. bc에서 출력한 값이 0인지 1인지를 판정하도록 하면 된다.

if [[ `echo "$x > $y" | bc` -eq 1 ]]
then
  echo "x의 값이 y의 값보다 큽니다."
fi



덧글

댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.



통계 위젯 (화이트)

44564
2887
2278600

2019 대표이글루_IT

B-Side