앞 장에서 선택된 항목을 식별하기 위해서 if 명령어를 연속으로 사용하였다. if 명령어와 유사하게 선택된 항목 다중 선택을 위한 프름 제어 기법이 여러 존재한다.
이번 장에서는 case 명령어에 대해 볼 것이다.
1. case
(1) case 문법
" case word in
[pattern [| pattern] ...) commands ;;] ...
esac"
위는 if 명령어를 사용해서 케이스를 분류해놓은 것이다.read -p "Enter selection [0-3] >" if [[ $REPLY =~ ^[0-3]$ ]]; then if [[ $REPLY == 0 ]]; then pass fi if [[ $REPLY == 1 ]]; then pass fi fi
if 명령어를 case 명령어의 형태로 전환한 코드이다.
read -p "Enter selection [0-3] >" case $REPLY in 0) pass exit ;; 1) pass exit ;; esac
(2) case 패턴 예제
- a) : a와 일치하는 단어
[[:alpha:]] : 하나의 알파벳 문자와 일치하는 단어
???) : 정확히 세 글자로 이루어진 단어
*.txt) : .txt 문자열로 끝나는 단어
*) : 모든 단어(3) 패턴 결합
수직바를 구분자로 사용하여 여러 패턴들을 결합하여 사용하는 것도 가능하다. 이것은 OR 조건 패턴을 생성한다.read -p "Enter selection [A, B, C or Q] > " case $REPLY in q|Q pass exit ;; a|A pass exit ;; esac
q or Q 즉, 소문자 대문자중 아무거나 입력 받아도 해당 분기점에서 실행이 된다.
'스터디 > 리눅스 커맨드라인' 카테고리의 다른 글
[리눅스] 33. 흐름 제어: for 루프 (0) | 2022.08.08 |
---|---|
[리눅스] 32. 위치 매개변수 (0) | 2022.08.01 |
[리눅스] 30. 문제 해결 (0) | 2022.07.25 |
[리눅스] 28. 키보드 입력 읽기 (0) | 2022.07.17 |
[리눅스] 27. 흐름 제어: if 분기 (0) | 2022.07.10 |