리눅스 셸 스크립트: 변수 생성 및 사용하기

리눅스 셸 스크립트: 변수 생성 및 사용하기

이 글에서는 셸 스크립트에서 변수를 사용하는 방법에 대해 자세히 알아보겠습니다. 변수의 정의부터 시작하여, 셸 스크립트에서 변수를 생성하고 사용하는 방법, 특수 변수의 이해, 변수 확장 기법, 그리고 환경 변수와 셸 변수의 차이점에 대해 알아보냅니다.

1. 변수의 기본 개념

변수는 데이터를 저장하는 데 사용되는 이름이 지정된 저장공간입니다. 셸 스크립트에서 변수는 명령어의 재사용, 설정의 관리, 그리고 스크립트의 유연성을 높이는 데 중요한 역할을 합니다.

2. 변수 생성 및 할당

셸 스크립트에서 변수를 생성하고 할당하는 방법은 다음과 같은 규칙을 따릅니다. 변수명은 문자, 숫자, 밑줄(_)을 포함할 수 있으나, 숫자로 시작할 수는 없습니다.

  • MY_VAR=Hello: 변수에 문자열을 할당할 때 인용 부호를 생략할 수 있습니다. 공백이나 특수 문자가 없는 경우에 해당합니다.
  • MY_VAR='Hello, World': 단일 인용 부호를 사용하여 공백이 포함된 문자열 값을 할당합니다.
  • MY_VAR="Hello, World": 이중 인용 부호를 사용하여 공백이 포함된 문자열 값을 할당합니다. 이중 인용 부호는 변수 확장, 명령 대체, 산술 확장 등을 허용합니다.
  • MY_VAR=5+2: 숫자를 변수에 할당하면, 이는 문자열 ‘5+2’로 처리됩니다.
  • MY_VAR="$ANOTHER_VAR": 다른 변수의 값을 참조하여 할당할 수 있습니다.
  • MY_VAR = "Hello, World": 변수에 값을 할당할 때는 ‘=’ 앞뒤에 공백을 사용하지 않습니다.

산술 연산과 expr 사용법

셸 스크립트에서 expr 명령어를 사용하여 산술 연산을 수행하고 그 결과를 변수에 할당할 수 있습니다. 곱셈 연산자(*)와 괄호(())를 사용할 때는 역슬래시(\)를 앞에 붙여야 합니다.

  • num=$(expr 2 + 2): 2와 2를 더한 결과를 변수 num에 할당합니다.
  • num=$(expr 2 - 2): 2에서 2를 뺀 결과를 변수 num에 할당합니다.
  • num=$(expr 2 \* 2): 2와 2를 곱한 결과를 변수 num에 할당합니다.
  • num=$(expr \( 2 + 2 \) \* 3): 2와 2를 더한 후 3으로 곱한 결과를 변수 num에 할당합니다.

3. 변수 사용

변수를 사용하여 셸 스크립트에서 데이터를 저장하고 참조할 수 있습니다. $ 기호를 사용하여 변수의 값을 가져올 수 있습니다. 다음은 변수 사용의 예시입니다.

$ MY_NAME="Blue, Share"
$ age=$(expr 29 + 1)
$ echo $MY_NAME
Blue, Share
$ echo $age
30

이 예시에서 MY_NAME 변수에 문자열 “Blue, Share”를 할당하고, age 변수에는 expr 명령어를 사용하여 계산된 결과인 30을 할당합니다. echo 명령어를 사용하여 이들 변수의 값을 출력합니다.

리눅스 변수 생성 및 사용 예시

4. 특수 변수

셸 스크립트에는 여러 특수 변수들이 있습니다. 예를 들어, $0은 스크립트의 이름을, $1, $2 등은 스크립트에 전달된 인자들을 나타냅니다. $#은 인자의 수를, $?는 마지막으로 실행된 명령의 종료 상태를 반환합니다.

5. 변수 확장

변수 확장은 셸 스크립트에서 변수의 값을 변형하거나 조작할 때 사용합니다. 다음은 변수 확장의 몇 가지 예시입니다.

MY_NAME="Blue, Share"
$ echo ${MY_NAME,,}
blue, share
$ echo ${MY_NAME^^}
BLUE, SHARE
$ echo ${MY_NAME:6:5}
Share
$ echo ${#MY_NAME}
11

이 예시에서는 MY_NAME 변수를 다음과 같이 조작합니다:

  • ${MY_NAME,,}는 변수의 모든 대문자를 소문자로 변환합니다.
  • ${MY_NAME^^}는 모든 소문자를 대문자로 변환합니다.
  • ${MY_NAME:6:5}는 문자열의 6번째 위치에서 5글자를 추출합니다.
  • ${#MY_NAME}는 변수 MY_NAME의 길이를 계산합니다.
리눅스 변수 확장 예시

6. 환경 변수와 셸 변수의 차이

셸 스크립트에서는 환경 변수와 로컬(셸) 변수를 구분합니다. 환경 변수는 시스템 전체에 걸쳐 접근 가능한 반면, 로컬 변수는 스크립트나 세션 내에서만 접근 가능합니다.

관련 이전 게시글

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤