간단한 정수 연산은 아래와 같이 할 수 있다.
이렇게 하면 85가 출력될 것이다. 수와 연산기호 사이에는 반드시 띄어쓰기를 해 주자. 더하기(+), 빼기(-), 곱하기(\*), 나누기(/), 모듈로(modulo, %) 등을 할 수 있다. 곱하기의 경우 연산기호에 유의하자. 반드시 \* 이렇게 써야 한다.
34*51의 결과를 result 변수에 저장하려면 아래와 같이 하면 되겠다.
result=`expr 34 \* 51`
echo "$result"
정수가 아니라 실수를 사용하고 싶다거나, 연산기호가 여러개 들어가는 복잡한 계산을 하려면 expr로는 안되고 bc를 이용해야 한다.
echo "24*3" | bc
-- 2013.7.24 추가 --
실수 나눗셈에 대한 부분을 추가로 적어 두기로 했다.
echo "1/2" | bc
0
1을 2로 나누는 예시인데, 결과가 0.5가 아니라 0이라고 나온다. 기본 설정이 정수 연산으로 되어 있어서 그러니, 제대로 된 결과를 얻으려면 scale 변수에 소수점 이하 몇자리를 출력할 것인지 지정해 주어야겠다. 소수점 이하 세자리를 출력하고 싶으면 아래와 같이 해 보자.
echo "scale=3; 1/2" | bc
0.500
이제 결과가 제대로 나왔다.
덧글
대신 bash에서 제공하는 let 명령을 쓰시면 됩니다.
let은 사칙연산 외에 복합연산, 승수등 다양한 연산이 지원됩니다.