셸은 기본적으로 모든 게 「문자열」.
숫자 계산을 하려면 명시적인 산술 표현이 필요합니다.
$((...))가 가장 모던하고 자주 쓰입니다.
$((...)) 산술 확장.
echo $((2 + 3)) — 5.
count=$((count + 1)) — 변수 증가.
$ 안 붙여도 됨 안에서는 — $((a + b))처럼.
+, -, *, /, %(나머지), **(거듭제곱) 등 일반 연산자.
let 명령.
let "count = count + 1" 또는 let count++.
$((...))와 비슷하지만 별도 명령.
모던 코드는 거의 $((...))만 사용.
expr 명령.
옛 도구.
expr 2 + 3 — 5 출력.
단점 — 별도 프로세스, 곱셈은 \* 이스케이프 필요(expr 2 \* 3).
옛 sh 호환을 위해 알아두면 좋지만 일상 사용은 $((...))로.
실수 계산은 bc·dc.
셸 산술은 정수만.
echo "3.14 * 2" | bc — 6.28.
bc -l로 부동소수점 라이브러리.
또는 awk "BEGIN {print 3.14*2}".
정밀한 수치는 셸 밖 도구로.
한 줄 요약
산술은 $((expr)) 형식 — count=$((count+1)) 같이.
let·expr는 옛 도구.
셸은 정수만, 실수는 bc·awk·python으로.
모던 코드는 거의 $((...))만 사용.
더 알아볼 것
- ((...)) 산술 명령
- $((변수)) — 0 prefix는 8진수
- bash 부동소수점 회피