'쉘스크립트 declare i 옵션'에 해당되는 글 1건

리눅스 쉘스크립트는 기본적으로 변수를 문자열로 취급하기 때문에, 정수형 산술연산(-, +, *, /, % 등)을 하기 위해서는 아래의 네가지 방법을 사용할 수 있다.

 

1. 선언시 정수형으로 선언

declare -i 변수명

위와 같이 변수 선언시, 해당 변수는 정수로 취급되며, 변수에 문자열을 넣으면 0이 된다. 기본값은 0이다.

이렇게 선언된 변수는 바로 산술연산이 가능하다.(산술식의 결과를 대입할 수도 있고, 변수끼리 산술연산도 가능하다)

 

e.g.

declare -i num

num=10+10

echo $num # 20이 출력됨

 

2. let 명령어 사용

declare -i 로 선언된 변수가 아니더라도,

let 산술연산 대입식

을 사용하여 산술연산이 가능하다.

 

e.g.

num=10

let num=num+10 # let "num = num + 10" 쌍따옴표로 묶어도 연산이 되며, 띄어쓰기도 넣을 수 있다.

echo $num # 20이 출력됨

 

3. 쌍괄호 사용

쌍괄호로 산술연산식을 감싸면 let 명령어를 사용한 것과 동일하다.

 

e.g.

num=10

((num=num+10)) # ((num = num + 10)) 띄어쓰기도 넣을 수 있다.

echo $num # 20이 출력됨

 

4. expr 명령어 사용

expr 값 연산자 값 or expr $[값 연산자 값]

 

e.g.

expr 10 + 20 # 30

expr 2 \* 3 # 6. *연산자를 와일드카드를 의미하므로 escape 해줘야 한다.

expr $[2 * 3] # expr $[2*3], echo $[2*3], echo $[2 * 3] 과 동일. $[] 로 감싸면 escape 할 필요 없다.

 

블로그 이미지

망원동똑똑이

프로그래밍 지식을 자유롭게 모아두는 곳입니다.

,