---------------------------------------------------------
# Syntax of while case:
---------------------------------------------------------
* case 문은 "case"로 시작하고 "esac"로 끝납니다.
* ")"는 패턴을 종료하는 데 사용됩니다.
* 명령이 있는 패턴은 절이라고하며 모든 절은 (;;)로 끝납니다.
* 별표 기호 *를 사용하여 기본 대소 문자를 정의 할 수 있습니다.
* case 문은 먼저 입력된 $ ariable을 다른 패턴과 일치시킵니다.
패턴이 일치하면 이중 세미콜론 (;;)까지 해당하는 명령 집합이 실행됩니다.
* 정규식을 지원하며 | 기호로 다중 값을 입력 가능하며 조건의 문장 끝에는 ;; 기호로 끝을 표시한다
* 대문자와 소문자는 구별한다.
case $variable in
pattern-1)
commands
;;
pattern-2)
commands
;;
pattern-3)
commands
;;
pattern-N)
commands
;;
*)
commands
;;
esac
조건에 다중 값을 사용하고 싶다면 "|" 연산자를 사용한다.
case $variable in
pattern-1 | pattern-2)
commands
....
....
;;
pattern-3 | pattern-4)
commands
....
....
;;
---------------------------------------------------------
# 월 이름이 일치하면 해당 월의 해당 이벤트를 표시
---------------------------------------------------------
* "shopt -s nocasematch"는 대소 문자에 관계없이 패턴을 일치시키는 데 사용됩니다.
#!/bin/bash
shopt -s nocasematch
printf "Enter name of the month: "
read month
case $month in
January)
echo " 24th January international Day of Education."
;;
February)
echo " 20 FebruaryWorld Day of Social Justice ."
;;
March)
echo "8th March International women’s day."
;;
April)
echo "7th April The World Health Day"
;;
*)
echo "No matching information found"
;;
esac
# output
$ bash test.sh
Enter name of the month: February
20 FebruaryWorld Day of Social Justice
$ bash test.sh
Enter name of the month: April
7th April The World Health Day
$ bash test.sh
Enter name of the month: april
7th April The World Health Day
$ bash test.sh
Enter name of the month: Undefine
No matching information found
---------------------------------------------------------
# 국가에 수도 출력
---------------------------------------------------------
#!/bin/bash
shopt -s nocasematch
echo -n "Enter the name of a country: "
read country
echo -n "The capital of $country is "
case $country in
UK | "United Kingdom")
echo -n "London"
;;
Turkey)
echo -n "Ankara"
;;
USA)
echo -n "Washington DC"
;;
*)
echo -n "Information not available"
;;
esac
echo ""
# output
$ bash test.sh
Enter the name of a country: USA
The capital of USA is Washington DC
---------------------------------------------------------
# case문 테스트를 위한 반복문
---------------------------------------------------------
#!/bin/bash
for string in "HELLO" "WORLD" "hello" "world" "s" "start" "end" "etc"; do
# case문 시작
case ${string} in
hello | HELLO)
echo "${string}: hello 일때"
;;
wo*)
echo "${string}: wo로 시작하는 단어 일때"
;;
s | start)
echo "${string}: s 혹은 start 일때"
;;
e | end)
echo "${string}: e 혹은 end 일때"
;;
*)
echo "${string}: 기타"
;;
esac
# //case문 끝
done
# output
$ bash test.sh
HELLO: hello 일때
WORLD: 기타
hello: hello 일때
world: wo로 시작하는 단어 일때
s: s 혹은 start 일때
start: s 혹은 start 일때
end: e 혹은 end 일때
etc: 기타
---------------------------------------------------------
# 참고 사이트
---------------------------------------------------------
https://blog.gaerae.com/2015/01/bash-hello-world.html
'쉘스크립트' 카테고리의 다른 글
[Shell Script] 반복문(while) (0) | 2021.04.15 |
---|---|
[Shell Script] 반복문(for) (0) | 2021.04.15 |
[Shell Script] 조건문(if-elif-else) (0) | 2021.04.15 |
[Shell Script] read를 이용한 입력값 받기 (0) | 2021.04.15 |
[Shell Script] 배열(Array) (0) | 2021.04.15 |