bash 에서 변수르 사용하기.

 

bash 에서의 변수는 타입이 존재 하지 않는다. 즉,  프로그램 랭기지 ( C/C++ 혹은 java) 와 같이 변수의 형을 선언 하여 쓰지 않는다.

 

bash의 변수는 본질적으로 문자열이며,  bash 가 문맥에 따라서 정수 연산이나 변수를 비교를 해 준다.

이 동작을 결정짓는 요소는 그 변수값이 숫자로만 되어 있는냐 아니냐 이다.

 

변수의 타입이 정해져 있지 않기 때문에, bash 스크립트를 짤 에는 충분히 여러분 마음대로 할 수 있는 유연함이 있지만, 알지 못하는 에러가 생길 수도 있으며 프로그래머가 스크립트에서 쓰이는 변수가 어떤 타입인지 계속 기억하고 있어야 한다.

 

아래의 예는 숫자는 a 로 선언하고, 문자는 b로 선언하여 연산 처리를 한 부분이다.

a의 숫자에는 1을 더하는 연산을 하였고, b에 선언된 문자열을 치환(  변수/바꿀문자열/바뀔문자열 ) 하는 작업을 하였다.

 
#!/bin/sh

a=10
b=STRING

echo $a
echo $b

let "a = a+1"

echo $a

c=${b/STRING/TEST}

echo $c

echo "===== END ======"

 

 

실행 결과는 다음과 같다.

 $ ./b.sh
10
STRING
11
TEST
===== END ======

 

쉘 프로그램은 변수에 타입이 없어서 많이 해깔리게 됩니다.