셸 스크립트: 변수(variable)와 상수(constant)

셸 스크립트에서 변수란 단어가 가진 의미는 변할 수 있는( variable) 값이다. 또 상당수의 애플리케이션에서 변수가 이와 같은 의미로 사용되고 있다.

상수(constant)는 이름이 정의되고 값이 지정된다는 점은 변수와 같다. 하지만 그 값은 변하지 않는다는 점이 다르다.

쉘은 변수와 상수를 따로 구분하지 않는데 용어를 구분하는 이유는 쉘 이용자의 편의를 위해서이다.
변수 상수

1. 변수(variable)

앞서 말했듯이 변수가 가진 의미는 변할 수 있는 값이다.

1.1 변수할당문: 변수명과 변수값

변수할당문
variable=value

variable는 변수 이름(변수명), value는 문자열이 들어간다.

변수할당문에서 변수명, 등호(=), 변수값에는 빈칸이 없어야 하며, 변수명은 영문자, 언더바(_), 숫자만 들어가며 영문자 대소문자를 구분한다.

#!bin/bash

 g=good
 gm="good morning" # 빈칸은 따옴표, 쌍따옴표 안에서만 사용 가능하다. 
 echo $g, $gm
----- ----- ----- ----- ----- ----- or ----- ----- ----- ----- ----- -----
#!bin/bash

 g=good  gm="good morning" # 한 줄에 여러 변수도 설정할 수 있다. 
 echo $g, $gm

먼저 셔뱅 설정을 하고 good 문자열변수 g에 할당한다. good morning 문자열은 변수 gm으로 할당되었다. 그리고 쌍따옴표를 사용해서 빈칸도 같이 인식할 수 있게 설정했다.

저장했던 변수할당문(oo.sh)의 퍼미션을 700으로 맞춰 준 후에 실행시키면 아래와 같이 나옴을 알 수 있다. 쌍 따옴표가 빈칸도 인식하게 해 준 것을 알 수 있다.

]# ./oo.sh
good, good morning

1.2 명령어 결과: 변수 값 할당

명령어 결과를 변수 값으로 할당한 경우이다.

 c=$(ls -l oo.txt)

2. 상수 선언

상수(constant)는 이름이 정의되고 값이 지정된다는 점은 변수와 같지만 값이 변하지 않는다는 점이 다르다고 언급했다.

보통 상수를 정의할 때는 대문자로, 그리고 변수를 정의할 때는 소문자를 사용한다.

readonly FILENAME="hello.txt"
declare -r  filename="hello.txt"

readonly 명령어를 사용하여 상수를 사용할 수 있게 설정하고 대문자로 표시한 FILENAME이 상수이다. readonly 명령어 외에도 ‘declare -r’ 명령어를 사용할 수 있다.

피코그래피 카테고리-비즈니스-노트북 타이핑 하는 여자

Similar Posts