Linux: Shell Variables
Shell variable의 종류와 어떻게 사용하는지에 대해 정리해보자.
Variable Name
여타 프로그래밍 언어와 마찬가지로 variable name을 아무렇게나 설정할 수 있는 것은 아니다. Alphanumeric과 underscore로 구성된 변수이름을 만들 수 있으며 특이점은 underscore가 먼저 오는 _VARIABLE
과 같은 형태도 사용이 가능하다. Shell에서 변수의 이름은 대문자로 써야한다.
Defining Variables
특이한 점은 없고 =
을 통해 assign할 수 있다.
|
|
Shell에서는 띄어쓰기에 주의하여야 한다. 가령 VAR1 = "APPLE"
과 같이 사용할 수는 없다. 이렇게 할 경우 VAR1
을 command로 인식하게 된다. 이렇게 하나의 값만 가지고 있는 변수들을 scalar variable이라고 한다.
Accessing Values
Shell에서 variable에 접근하는 방법은 변수 이름앞에 $
를 붙이면 된다.
|
|
위를 실행하면 VAR1
의 값을 출력한다.
|
|
Read-only Variables
프로그래밍의 상수와 같이 값이 변경되지 않아야 하는 변수는 readonly
를 사용해 변경이 불가능하도록 설정할 수 있다.
|
|
위와 같이 실행하면 다음과 같이 read only이므로 assign할 수 없다고 나온다.
|
|
Unsetting Variables
Linux를 사용하다보면 환경변수를 지워야 할 일이 종종 생긴다. 이 때 unset
을 이용해 지워줄 수 있다.
|
|
VAR
값이 출력된다.
|
|
unset
으로 값을 지워보자.
|
|
값이 unset되어 아무 값도 출력되지 않는다. Read-only 상태인 variable은 unset시킬 수 없다.
Variable Types
Shell이 작동하는 동안에는 다음의 세 가지 변수타입이 존재한다.
-
Local Variables
현재 작동중인 shell에서만 존재하는 변수이다.
-
Environment Variables
프로그램 설치할 때 자주 만나는 환경변수이다. 환경변수는 shell전반에서 사용된다.
printenv
명령어를 통해 환경변수를 볼 수 있다. Local variable과 달리 새로운 shell을 띄워도 사용할 수 있는 변수이다. -
Shell Variables
Shell을 작동할 수 있게 해주는 변수들로 일부는 environment variable, 일부는 local variable이다.