반응형
배시 케이스 문은 일반적으로 여러 가지 다른 옵션이 있는 경우 복잡한 조건을 단순화하는 데 사용됩니다. 문장이 중첩된 경우 대신 사례문을 사용하면 bash 스크립트를 보다 읽기 쉽고 쉽게 유지관리할 수 있습니다.
Bash case 문장은 Javascript 또는 C 스위치 문과 유사한 개념을 가지고 있습니다. 가장 큰 차이점은 C 스위치 문과 달리 Bash case 문에서 패턴 일치를 찾고 해당 패턴과 연결된 문을 실행한 후에는 패턴 일치를 계속 검색하지 않는다는 점입니다.
이 튜토리얼에서는 Bash case 문장의 기본 사항을 다루고 셸 스크립트에서 사용하는 방법을 보여드리겠습니다.
대/소문자를 구분
Bash case 문에는 다음 형식이 있습니다.
case EXPRESSION in
PATTERN_1)
STATEMENTS
;;
PATTERN_2)
STATEMENTS
;;
PATTERN_N)
STATEMENTS
;;
*)
STATEMENTS
;;
esac
- 각 사례문은 사례 키워드로 시작하고 사례 표현식 및 인 키워드 뒤에 나옵니다. 문이 esac 키워드로 끝납니다.
- | 연산자로 구분된 여러 패턴을 사용할 수 있습니다. ) 연산자는 패턴 목록을 종료합니다.
- 패턴에는 특수 문자가 포함될 수 있습니다.
- 패턴 및 패턴과 연관된 명령을 절이라고 합니다.
- 각 절은 ;;로 종료되어야 합니다.
- 식과 일치하는 첫 번째 패턴에 해당하는 명령이 실행됩니다.
- 와일드카드 별표 기호(*)를 최종 패턴으로 사용하여 기본 사례를 정의하는 것이 일반적입니다. 이 패턴은 항상 일치합니다.
- 일치하는 패턴이 없으면 반환 상태는 0입니다. 그렇지 않으면 반환 상태는 실행된 명령의 종료 상태입니다.
사례 명세서 예제
다음은 특정 국가의 공용어를 인쇄하는 배시 스크립트에서 사례 문장을 사용하는 예입니다.
# languages.sh
#!/bin/bash
echo -n "Enter the name of a country: "
read COUNTRY
echo -n "The official language of $COUNTRY is "
case $COUNTRY in
Lithuania)
echo -n "Lithuanian"
;;
Romania | Moldova)
echo -n "Romanian"
;;
Italy | "San Marino" | Switzerland | "Vatican City")
echo -n "Italian"
;;
*)
echo -n "unknown"
;;
esac
사용자 지정 스크립트를 파일로 저장하고 명령줄에서 실행합니다.
bash languages.sh
이 스크립트는 국가를 입력하라는 메시지를 표시합니다. 예를 들어 "Lithuania"를 입력하면 첫 번째 패턴과 일치하고 해당 절의 에코 명령이 실행됩니다.
스크립트는 다음 출력을 인쇄합니다.
# Enter the name of a country: Lithuania
# The official language of Lithuania is Lithuanian
기본 와일드카드 별표 기호를 제외한 다른 패턴과 일치하지 않는 국가를 입력하면 아르헨티나 스크립트가 기본 절 내에서 에코 명령을 실행합니다.
# Enter the name of a country: Argentina
# The official language of Argentina is unknown
반응형
'SW > 리눅스' 카테고리의 다른 글
CentOS 7 : Samba 설치, 구성 방법, 예제, 명령어 (0) | 2021.06.21 |
---|---|
Linux : 루프문 Until로 Bash 사용 방법, 예제, 명령어 (0) | 2021.06.20 |
Linux : Ls 명령어 사용 방법, 예제, 명령어 (파일, 디렉토리 나열) (0) | 2021.06.18 |
Ubuntu 18.04 : OpenCart 설치 방법, 예제, 명령어 (0) | 2021.06.17 |
Cent OS 7 : 사용자를 추가 및 삭제하는 방법, 예제, 명령어 (0) | 2021.06.16 |