🏷️산술 연산
- 엄밀히 따지면, 셸 명령어에 해당하는 내용이다.
- 그러나 조건문과 반복문을 사용할 때, 함께 사용하면 유용하기에 정리한다.
📌정수 연산
- 명령어
expr
을 이용한다.
- expr stands for expression
expr
에서 사용가능한 연산자의 종류는 크게 3가지로 나눌 수 있다.
산술 연산자
연산자 | 설명 |
---|
값1 + 값2 | 덧셈 |
값1 - 값2 | 뺄셈 |
값1 * 값2 | 곱셈 |
값1 / 값2 | 나눗셈 |
값1 % 값2 | 나머지 연산 (modulo) |
논리 연산자
연산자 | 설명 |
---|
값1 | 값2 | 논리합 연산 |
값1 & 값2 | 논리곱 연산 |
비교 연산자
연산자 | 설명 |
---|
값1 < 값2 | less than |
값1 <= 값2 | less than or eqaul |
값1 > 값2 | greater than |
값1 >= 값2 | greater than or equal |
값1 = 값2 | equal |
값1 != 값2 | not equal |
- 비교 연산자들은 참이면 1을 return하고, 거짓이면 0을 return한다.
- 셸에서
expr
명령을 사용해보자.
- 🖇️cf)
*
는 와일드 카드이므로, ' '
(작은따옴표)로 감싸준다.
- 🖇️cf)
$
는 프롬프트
$ expr 10 '*' 4
📌실수 연산
expr
명령어는 실수 연산을 할 수 없다.
- 실수 연산을 하기 위해선
bc
명령어를 사용하는 것이 좋다.
- bc stands for basic calculator
bc
는 expr
와 다르게 interactive모드로 동작하므로, 셸 스크립트에서 사용하기 위해선 |
(파이프)로 bc
표준입력에 전달해야 한다.
- 다음은 사용 가능한 연산자인데,
expr
명령과 거의 같다.
연산자 | 설명 |
---|
값1 + 값2 | 덧셈 |
값1 - 값2 | 뺄셈 |
값1 * 값2 | 곱셈 |
값1 / 값2 | 나눗셈 |
값1 % 값2 | 나머지 연산 (modulo) |
값1 ^ 값2 | 제곱 |
-l
옵션을 사용하면, libc에 정의된 함수도 사용할 수 있다.
- 또한, interactive모드에서 변수 scale의 값을 설정하면, 계산 정밀도를 지정할 수 있다.
- 다음은
bc
를 사용하는 셸 스크립트다.
#!/bin/sh
x=3.14
y=2.71
echo "scale=15; $x * $y" | bc