잘 몰랐으나 유용한 연산자 !!!
출처
http://wiki.kldp.org/HOWTO/html/Adv-Bash-Scr-HOWTO/ops.html
- +=
-
"plus-equal"(상수값 만큼 증가)
let "var += 5" 은 var의 값을 5만큼 증가시킵니다.
- -=
-
"minus-equal"(상수값 만큼 감소)
- *=
-
"times-equal"(상수값을 곱함)
let "var *= 4" 는 var의 값에 4배를 해 줍니다.
- /=
-
"slash-equal"(상수값으로 나눔)
- %=
-
"mod-equal"(상수값으로 나눈 나머지 값)
산술 연산자는 종종 expr 이나 let 식에서 쓰입니다.
예 8-1. 산술 연산자 쓰기
#!/bin/bash # 5가지의 다른 방법으로 6까지 세기. n=1; echo -n "$n " let "n = $n + 1" # let "n = n + 1" 이라고 해도 됩니다. echo -n "$n " : $((n = $n + 1)) # ":" 가 없으면 Bash가 "$((n = $n + 1))"을 #+ 명령어로 해석하려고 하기 때문에 필요합니다. echo -n "$n " n=$(($n + 1)) echo -n "$n " : $[ n = $n + 1 ] # ":" 가 없으면 Bash가 "$[n = $n + 1]"을 #+ 명령어로 해석하려고 하기 때문에 필요합니다. # "n"이 문자열로 초기화 되어 있어도 동작합니다. echo -n "$n " n=$[ $n + 1 ] # "n"이 문자열로 초기화 되어 있어도 동작합니다. #* 이런 형태는 더 이상 지원되지 않고 이식성도 없기 때문에 쓰지 마세요. echo -n "$n "; echo # Thanks, Stephane Chazelas. exit 0
참고: Bash 의 정수 변수는 실제로는 범위가 -2147483648 에서 2147483647 까지인 signed long(32-bit) 정수입니다. 그렇기 때문에 이 범위를 벗어나는 변수를 쓰면 에러가 납니다.