bash script2023. 10. 17. 08:38

 

반달가면 이글루에서 백업 - http://bahndal.egloos.com/647814

리눅스 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

728x90
Posted by 반달가면