셸스크립트
#02 case 문
- 여러 가지 경우의 수가 있다면 case 문
- c언어의 switch 문과 비슷하다.
ㅡㅡㅡㅡㅡ
01 #!/bin/bash
02 case "$1" in
03 start)
04 echo "시작~~";;
05 stop)
06 echo "중지~~";;
07 restart)
08 echo "다시 시작~~";;
09 *)
10 echo "명령어가 틀렸습니다.";; # 위 경우 중 해당하는 것이 없는 경우.
11 esac
ㅡㅡㅡㅡㅡ
vi case.sh : case.sh 생성 후 vi 에디터로 수정.
case.sh 내용 :
ㅡㅡㅡㅡㅡ
#!/bin/bash
echo "Linux is fun? (yes/no)" #문장 출력.
read answer # 입력받은 값을 answer에 출력.
case $answer in # $answer에 대해 아래 경우에 속하면 종속된 문장을 실행.
yes)
echo you input yes;;
no)
echo you input no;;
*)
echo plz input yes or no;;
esac
ㅡㅡㅡㅡㅡ
chmod 755 case.sh : case.sh 에 권한 755 부여.
cat case.sh : case.sh 읽기
./case.sh : case.sh 실행
ㅡㅡㅡ
./case.sh -> Linux is fun? -> yes 혹은 no 입력
yes 의 경우 -> you input yes
no 의 경우 -> you input no
그 밖의 경우 -> plz input yes or no
ㅡㅡㅡ
위의 case문은
ㅡㅡㅡㅡㅡ
#!/bin/bash
echo "Linux is fun? (yes/no)"
read answer
case $answer in
yes | y | Y | YES) # 4가지 중 하나의 경우로 입력한 경우.
echo you input yes;;
[Nn]*) # N 이나 n 으로 시작하는 값을 입력한 경우.
echo you input no;;
*)
echo plz input yes or no;;
esac
ㅡㅡㅡㅡㅡ
vi case.sh : case.sh 를 vi 에디터로 수정.
case.sh 내용 :
ㅡㅡㅡㅡㅡ
#!/bin/bash
echo "input MMddHHYYYY"
read num #입력받은 값을 num에 저장.
date $num # date 명령어를 통해 요일을 확인
echo "what date?"
case "$(date +%a)" in
Sun)
echo sunday;;
Mon)
echo monday;;
Tue)
echo tuesday;;
Wed)
echo wednsday;;
Thu)
echo thursday;;
Fri)
echo friday;;
Sat)
echo saturday;;
*)
echo wrong;;
esac
ㅡㅡㅡㅡㅡ
cat case.sh : case.sh 를 읽기.
./case.sh : 현재 폴더안에 있는 case.sh 실행.
vi case.sh : case.sh 를 vi 에디터로 수정.
date 050212122021 > nul : date 050212122021 의 출력값을 출력하지 않음.
위의 셸의 경우 불필요하게 요일, 달, 날짜, 년도가 출력되어 정보가 중복되므로,
date $num > nul
을 통해 date $num 의 출력 결과를 출력하지 않게 한다.
':: Linux 🚩 > Linux_shell_script' 카테고리의 다른 글
[리눅스] [6일차] [셸 스크립트 - etc / 나머지 셸들.] (0) | 2021.05.07 |
---|---|
[리눅스] [6일차] [셸 스크립트 - 함수] (0) | 2021.05.07 |
[리눅스] [셸 스크립트] [while 문] (0) | 2021.05.07 |
[리눅스1] [6일차] [ #03 셸스크립트 for문 ] (0) | 2021.05.03 |
[리눅스1] [6일차] [#01 셸 스크립트 - if문] (0) | 2021.05.03 |
댓글