Skip to content

4. 타입이 없는 BASH 변수


BASH는 다른 프로그래밍 언어들과는 달리, 변수를 타입으로 구분하지 않는다. BASH 변수는 본질적으로 문자열이지만, BASH가 문맥에 따라서 정수 연산이나 변수를 비교해 준다. 이 동작을 결정짓는 요소는 그 변수값이 숫자로만 되어 있느냐 아니냐이다.


예제) 정수인지 문자열인지 결정
#!/bin/bash

# 정수
a=2334
let "a += 1"
# 여전히 정수임
echo "a = $a"
# a = 2335

# 문자열로 변환
b=${a/23/BB}
echo "b = $b"
# b = BB35
# 정수로 선언해도 도움이 되지 않음
declare -i b
echo "b = $b"
# b = BB35

let "b += 1"
echo "b = $b"
# b = 1

c=BB34
echo "c = $c"
# c = BB34
# 정수로 변환
d=${c/BB/23}
echo "d = $d"
d = 2334
let "d += 1"
echo "d = $d"
# d = 2335

# BASH의 변수는 본질적으로 타입이 없음(Untyped)

exit 0

References