반달가면 이글루에서 백업 - 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
'bash script' 카테고리의 다른 글
[bash: head, tail] 처음 n개의 행, 마지막 n개의 행, 또는 이를 제외한 나머지 출력 (1) | 2023.10.17 |
---|---|
[bash: date] UTC(GMT) 기준 시간을 로컬(한국) 시간으로 변환 (0) | 2023.10.17 |
[bash: bc, sed] 1보다 작거나 -1보다 큰 계산 결과에서 앞자리에 0 표시하기 (.5 -> 0.5) (0) | 2023.10.16 |
[bash: tail] 텍스트 파일 내용의 끝부분 출력 (0) | 2023.10.16 |
[bash: sed] 행 맨 앞에 있는 공백 제거 (0) | 2023.10.16 |