리눅스 셸 스크립트: Case 문과 패턴 매칭 사용
리눅스 셸 스크립트에서 case 문은 다양한 조건에 따라 다른 명령을 실행할 수 있는 유연한 방법을 제공합니다. 이 글에서는 case 문의 기본 구조와 함께 패턴 매칭을 활용하는 방법을 알아보겠습니다.
☞ 포스트 기준: 리눅스 배포판 CentOS 7
1. Case 문의 기본 구조
case 문은 다음과 같은 기본 구조를 가집니다.
case 변수 in 패턴1) # 명령1 ;; 패턴2) # 명령2 ;; *) # 기본 명령 ;; esac
여기서 변수는 평가할 값이며, 패턴1, 패턴2 등은 일치하는 조건을 나타냅니다. 각 패턴에 따라 실행할 명령을 지정할 수 있습니다. 각 명령은 ‘;;’ (두 개의 세미콜론)으로 끝나야 합니다.
2. 패턴 매칭 활용
Case 문은 간단한 문자열 비교부터 복잡한 패턴 매칭까지 다양한 형태로 활용할 수 있습니다.
case $variable in [a-z]*) echo "소문자로 시작합니다." ;; [A-Z]*) echo "대문자로 시작합니다." ;; [0-9]*) echo "숫자로 시작합니다." ;; *) echo "알 수 없는 형식입니다." ;; esac
이 예제에서는 입력된 변수의 첫 글자에 따라 다른 메시지를 출력합니다.
3. 복잡한 패턴과 조건 조합
Case 문은 복잡한 패턴과 여러 조건의 조합도 지원합니다.
case $input in [a-z] | [A-Z]) echo "알파벳입니다." ;; ?) echo "한 글자입니다." ;; *.txt) echo "텍스트 파일입니다." ;; *) echo "다른 형식입니다." ;; esac
이 예제에서는 다양한 패턴을 조합하여 더 세밀한 조건을 처리합니다.
사용 예제
#!/bin/bash echo "사용자에게 입력을 요청합니다." echo "1, 2, 3 중 하나의 숫자를 입력하세요: " read number case $number in 1) echo "입력한 숫자는 1입니다." ;; 2) echo "입력한 숫자는 2입니다." ;; 3) echo "입력한 숫자는 3입니다." ;; *) echo "잘못된 입력입니다. 1, 2, 또는 3 중 하나를 입력해야 합니다." ;; esac
이 스크립트는 사용자로부터 숫자를 입력받고, 그 숫자에 따라 다른 메시지를 출력합니다. 입력된 숫자가 1, 2, 또는 3이 아닌 경우에는 “잘못된 입력” 메시지를 출력합니다.

관련 이전 게시글
- 리눅스 명령어 도움말 및 매뉴얼 확인하기: –help, man, info
- 리눅스 grep 명령어: 파일 내에서 문자열 검색 및 패턴 찾기
- 리눅스 find 명령어: 파일 검색 및 고급 사용
- 리눅스 셸 스크립트: 변수 생성 및 사용하기
- 리눅스 셸 스크립트: if 문 사용법과 다양한 비교 방법
다음 글에서도 셸 스크립트에 대해 알아볼 예정입니다. 도움이 되셨다면 공유해 주세요!