리눅스 셸 스크립트: Case 문과 패턴 매칭 사용

리눅스 셸 스크립트: Case 문과 패턴 매칭 사용

리눅스 셸 스크립트에서 case 문은 다양한 조건에 따라 다른 명령을 실행할 수 있는 유연한 방법을 제공합니다. 이 글에서는 case 문의 기본 구조와 함께 패턴 매칭을 활용하는 방법을 알아보겠습니다.

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이 아닌 경우에는 “잘못된 입력” 메시지를 출력합니다.

리눅스 Case 문 사용 예제

관련 이전 게시글

위로 스크롤