Logo
내 게시판 만들기
리눅스

case문 — 다중 분기

멍뭉이 | 2026.04.27 13:42:09
조회 30 | 추천 0

여러 if-elif가 길어질 때 case가 깔끔합니다.

하나의 값에 대해 여러 패턴 매칭, 각 패턴에 다른 처리.

다른 언어의 switch에 해당.



기본 형식.

case "$var" in / pattern1) ...;; / pattern2) ...;; / *) 기본;; / esac.

패턴 뒤 ), 처리 후 ;;(두 세미콜론), 마지막 esac(case 거꾸로).



패턴.

와일드카드 사용 가능.

*.txt — 「.txt로 끝남」.

[Yy]*) — 「Y 또는 y로 시작」.

*) — 「모두 일치」(기본 케이스).

| 로 OR — 1|2|3) ....



활용.

사용자 입력 처리.

case "$choice" in / yes|y) echo "진행"; ;; / no|n) echo "취소"; ;; / *) echo "잘못된 입력"; ;; / esac.

메뉴·옵션 처리에 매우 자연스러움.



함수 인자에.

case "$1" in / start) start_service; ;; / stop) stop_service; ;; / restart) stop_service; start_service; ;; / esac.

「start·stop·restart」 같은 서비스 스크립트의 표준 패턴.




한 줄 요약


case는 다중 분기.

패턴) 처리 ;; 형식, 와일드카드·| OR 활용.

esac으로 끝.

메뉴·옵션 처리·서비스 명령에 깔끔.

if-elif가 길면 case로.




더 알아볼 것


- case의 ;& 와 ;;& fall-through

- getopts와 case 결합

- extglob — 더 강력한 패턴

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
102 구름이 26/04/27 24 0
101 곰돌이 26/04/27 21 0
100 멍뭉이 26/04/27 26 0
99 구름이 26/04/27 21 0
98 곰돌이 26/04/27 23 0
97 햇살이 26/04/27 23 0
96 별님이 26/04/27 50 0
95 부엉이 26/04/27 22 0
94 햇살이 26/04/27 22 0
93 구름이 26/04/27 21 0
92 토순이 26/04/27 22 0
91 너구리 26/04/27 32 0
90 곰돌이 26/04/27 23 0
89 야옹이 26/04/27 22 0
88 구름이 26/04/27 23 0
87 별님이 26/04/27 21 0
86 별님이 26/04/27 20 0
85 멍뭉이 26/04/27 30 0
84 부엉이 26/04/27 23 0
83 야옹이 26/04/27 27 0
82 야옹이 26/04/27 26 0
81 너구리 26/04/27 24 0
80 야옹이 26/04/27 23 0
79 토순이 26/04/27 24 0
78 구름이 26/04/27 24 0
77 다람쥐 26/04/27 28 0
76 구름이 26/04/27 21 0
75 별님이 26/04/27 25 0
74 토순이 26/04/27 25 0
73 구름이 26/04/27 22 0
신고하기

신고 사유를 선택해 주세요.