unix and linux
쉘에서 $((expression)) : 산술 확장(arithmetic expansion) 사용 예시
'김용환'
2017. 1. 5. 01:47
$((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