반달가면 이글루에서 백업 - 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
이제 결과가 제대로 나왔다.
'bash script' 카테고리의 다른 글
[bash: tr] 대소문자 변환 (0) | 2020.10.21 |
---|---|
[bash: RANDOM] 난수 생성 (0) | 2020.10.21 |
[bash: expect] ssh 자동 접속 (확장) (0) | 2020.10.19 |
자동 접속 script 사용할 때 명심할 점 (0) | 2020.10.19 |
[bash: expect] ssh 자동 접속 (0) | 2020.10.19 |