$((expression))은 산술 확장(arithmetic expansion)이라 해서 수식을 사용할 수 있다.
그룹핑을 강제하기 위해 표현식 안에서 괄호를 자유롭게 사용할 수 있다.
$((expression))에서 사용할 수 있는 연산자는 +, -, *, /, %, **와 같은 기본 문법에 +=, -=, *=, /=, 변수++, 변수-- 등 많은 연산자와 숫자, 변수를 사용할 수 있다.
예시 1) x진수를 10 진수로
$ echo $((16#100))
256
예시 2) 간단한 산술 확장
$ i=2
$ echo $((i+1))
3
예시 3) 특정 변수에 산술 계산한 다음 다시 해당 변수에 저장
$ i=$(( i * 5 ))
$ echo $i
10
예시 4) 고급 산술 확장
$ i=3
$ j=2
$ echo $((i = i * (j + 1)))
9
예시 5) ++
$ i=10
$ i=$(( ++i ))
$ echo $i
11
예시 6) *=
$ i=5
$ i=$((i*=5))
$ echo $i
25
예시 7) true(1)/false(0)
$ i=5
$ j=$(( i < 10 ))
$ echo $j
0
유의할 점은 다음과 같다.
1. (( 다음에 공백이, )) 전에 공백이 있어도 동작한다.
$ i=$(( i * 5 ))
$ echo $i
50
2. (( 사이에 공백이 있으면 동작하지 않는다.
$ i=$( (i * 5) )
-bash: i: command not found
'unix and linux' 카테고리의 다른 글
[shell] 역슬래시(\) 예시 (0) | 2017.01.05 |
---|---|
[shell] 따옴표 없는 것, 작은 따옴표, 큰 따옴표 사이의 주요 차이점 (0) | 2017.01.05 |
쉘에서 여러 진수의 값을 10진수로 변환하기 (0) | 2017.01.04 |
centos 7 공식 문서 (0) | 2017.01.04 |
[linux] 긴 프로세스 이름을 한 줄에 보여주기 (0) | 2017.01.03 |