bash script2020. 10. 20. 11:02

 

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


리눅스 셸에서 산수 계산을 하는 방법이다.

간단한 정수 연산은 아래와 같이 할 수 있다.

expr 34 + 51

이렇게 하면 85가 출력될 것이다. 수와 연산기호 사이에는 반드시 띄어쓰기를 해 주자. 더하기(+), 빼기(-), 곱하기(\*), 나누기(/), 모듈로(modulo, %) 등을 할 수 있다. 곱하기의 경우 연산기호에 유의하자. 반드시 \* 이렇게 써야 한다.

34*51의 결과를 result 변수에 저장하려면 아래와 같이 하면 되겠다.

result=`expr 34 \* 51`
echo "$result"

정수가 아니라 실수를 사용하고 싶다거나, 연산기호가 여러개 들어가는 복잡한 계산을 하려면 expr로는 안되고 bc를 이용해야 한다.

34.8+51.2를 더하고 이 값을 제곱하려면 아래와 같이 하면 되겠다.

echo "(34.8+51.1)^2" | bc

bc를 사용할 때는 곱하기 연산기호를 평소처럼 그냥 쓰면 된다. 예를 들어 24*3은 아래와 같이 하면 된다.

echo "24*3" | bc

echo 명령으로 출력하는 수식은 반드시 따옴표로 묶어 주자.


-- 2013.7.24 추가 --

실수 나눗셈에 대한 부분을 추가로 적어 두기로 했다.

echo "1/2" | bc
0

1을 2로 나누는 예시인데, 결과가 0.5가 아니라 0이라고 나온다. 기본 설정이 정수 연산으로 되어 있어서 그러니, 제대로 된 결과를 얻으려면 scale 변수에 소수점 이하 몇자리를 출력할 것인지 지정해 주어야겠다. 소수점 이하 세자리를 출력하고 싶으면 아래와 같이 해 보자.

echo "scale=3; 1/2" | bc
0.500

이제 결과가 제대로 나왔다.

 

 

728x90
Posted by 반달가면