Skip to content

Linux 기본명령어 case #

Find similar titles

2회 업데이트 됨.

Edit
  • 최초 작성자
  • 최근 업데이트
    shlee

case #

Linux에서 주로 사용되는 case문은 스크립트나 프로그램에서 다양한 조건을 비교할 때 사용되며, 복잡한 조건문을 간결하게 표현할 수 있는 강력한 명령어다. case문은 다른 언어에서의 switch문과 유사한 역할을 하는데, 주로 문자열 값에 대한 다양한 조건을 검사하고 각 조건에 따라 다른 명령어 블록을 실행하는 데 사용된다.

사용법 #

기본 구문

case 변수 in
    패턴1)
        명령어1
        ;;
    패턴2)
        명령어2
        ;;
    패턴3)
        명령어3
        ;;
    *)
        기본동작
        ;;
esac

case문은 case로 시작해서 esac로 닫아야 한다. 여기서 각 패턴은 변수와 비교되며, 일치하는 패턴이 발견되면 해당 명령어 블록이 실행된다. *)는 모든 패턴에 일치하지 않을 때 실행되는 기본동작을 나타낸다.

아래 방법은 패턴을 이용한 case문 처리 방법이다.

구분 설명
* 모든 문자, 숫자 등 상관없이 일치
? 임의의 하나의 문자만 상관없이 일치
[a-z] 알파벳 소문자 중 하나라도 일치
[A-Z] 알파벳 대문자 중 하나라도 일치
[0-9] 숫자 중 하나라도 일치

아래는 case문의 예시 문법이다.

#!/bin/bash


case_num(){

echo -n "input num : "

read num

case $num in
        1) echo "number is one" ;;
        2) echo "number is two" ;;
        3) echo "number is three" ;;
        *) echo "another number" ;;
esac
}


case_birth(){

echo -n "input date : "

read date

case $date in
        ??01??) echo "Born is winter" ;;
        ??02??) echo "Born is winter" ;;
        ??03??) echo "Born is spirng" ;;
        ??04??) echo "Born is spring" ;;
        ??05??) echo "Born is spring" ;;
        ??06??) echo "Born is summer" ;;
        ??07??) echo "Born is summer" ;;
        ??08??) echo "Born is summer" ;;
        ??09??) echo "Born is Autumn" ;;
        ??10??) echo "Born is Autumn" ;;
        ??11??) echo "Born is Autumn" ;;
        ??12??) echo "Born is winter" ;;
        *) echo "Input Error!!!" ;;
esac
}


case_num
case_birth

위 스크립트를 실행 후 input num에는 1을 input date에는 190111을 입력하면, 아래와 같이 'number is one' / 'Born is winter' 결과를 출력한다.

(base) [hccho@frontend SCRIPT]$ sh case.sh
input num : 1
number is one
input date : 190111
Born is winter

다른 예시로 case문에 없는 변수를 입력하였을 때를 살펴보자. input num에는 4를 input date에는 111311을 입력하면, 아래와 같이 'another number' / 'Input Error!!!' 결과를 출력한다.

input num : 4
another number
input date : 111311
Input Error!!!

왜 이와 같은 결과가 출력되었는지를 살펴보면, case문에서 우선 첫 번째 case문의 변수에는 1,2,3만 정해져 있고 그 나머지 숫자는 'another number'로 출력하라고 되어있으므로 4를 입력하였을 때 'another number'가 출력된 것이다.

또한, 두 번째 case문의 변수에는 01~12월까지의 변수만 정해져 있는데, 변수에 지정되어 있지 않은 숫자(입력한 date의 111311의 가운데 숫자인 13)가 입력되었으므로 'Input Error!!!'가 출력된 것이다.

case문에 대한 보다 자세한 내용은 터미널에서 'case help'를 통해 추가로 알 수 있다.

Suggested Pages #

0.0.1_20240214_1_v81