이 주제에서는 Case 문의 기본 사항과 이를 Bash 스크립트에서 사용하는 방법에 대해 설명합니다.
Bash 케이스 문은 많은 ELIF 요소를 포함하는 IF-THEN-ELSE의 가장 간단한 형태입니다. Case 문을 사용하면 bash 스크립트를 더 읽기 쉽고 유지 관리하기가 더 쉬워집니다. 이는 일반적으로 여러 가지 선택 사항이 있는 복잡한 조건을 단순화하기 위해 적용됩니다.
Bash 케이스 문은 Javascript 또는 C 스위치 문과 유사한 논리를 따릅니다. 다음과 같이 약간의 차이가 있습니다.
- Bash 케이스 문은 값을 한 번 취하고 해당 값을 여러 번 테스트합니다. 패턴을 발견하고 그에 연결된 명령문을 실행하면 패턴 검색을 중지합니다. 이는 C 스위치 명령문의 경우와 거의 반대입니다.
사례 설명 구문
bash 케이스 문의 구문은 다음과 같습니다.
case expression in pattern_1) statements ;; pattern_2) statements ;; pattern_3|pattern_4|pattern_5) statements ;; pattern-n) statements ;; *) statements ;; esac
Bash 사례 문의 몇 가지 핵심 사항이 있습니다.
- Bash의 각 Case 문은 'case' 키워드로 시작하고 그 뒤에 Case 표현식과 'in' 키워드가 옵니다. Case 문은 'esac' 키워드로 닫힙니다.
- |로 구분된 여러 패턴을 적용할 수 있습니다. 운영자. ) 연산자는 패턴 목록의 종료를 나타냅니다.
- 문장을 포함하는 패턴을 절(clause)이라고 하며, 반드시 이중 세미콜론(;;)으로 끝나야 합니다.
- 별표 기호(*)는 기본 케이스를 정의하기 위한 최종 패턴으로 사용됩니다. 마지막 케이스로 사용시 디폴트 케이스로 사용됩니다.
작동 원리
우선, Case 문은 표현식을 확장하고 포함된 각 패턴과 일치를 시도합니다. 일치하는 항목을 찾으면 연결된 모든 문이 이중 세미콜론(;;)까지 실행됩니다. 첫 번째 일치 후 케이스는 마지막으로 실행된 문의 종료 상태로 종료됩니다.
일치하는 패턴이 없으면 케이스의 종료 상태는 0입니다. 그렇지 않은 경우 반환 상태는 실행된 문의 종료 상태입니다.
기본 별표 패턴을 사용하는 경우 일치하는 패턴이 없을 경우 실행됩니다.
몇 가지 예를 통해 이 메커니즘을 이해해 보겠습니다.
실시예 1
이 예에서는 Case 문의 사용을 보여주기 위해 간단한 시나리오를 정의했습니다.
배시 스크립트
#!/bin/bash echo 'Do you know Java Programming?' read -p 'Yes/No? :' Answer case $Answer in Yes|yes|y|Y) echo 'That's amazing.' echo ;; No|no|N|n) echo 'It's easy. Let's start learning from javatpoint.' ;; esac
산출
실시예 2
이 예에서는 이전에 일치하는 사례가 발견되지 않은 경우 기본 사례도 있는 결합 시나리오를 정의했습니다.
자바 추가 문자열
배시 스크립트
#!/bin/bash echo 'Which Operating System are you using?' echo 'Windows, Android, Chrome, Linux, Others?' read -p 'Type your OS Name:' OS case $OS in Windows|windows) echo 'That's common. You should try something new.' echo ;; Android|android) echo 'This is my favorite. It has lots of applications.' echo ;; Chrome|chrome) echo 'Cool!!! It's for pro users. Amazing Choice.' echo ;; Linux|linux) echo 'You might be serious about security!!' echo ;; *) echo 'Sounds interesting. I will try that.' echo ;; esac
산출
세 가지 다른 입력을 사용하여 스크립트를 실행했습니다. 아래 출력을 확인하세요.