본문 바로가기
  • Welcome.
:: Linux 🚩/Linux_shell_script

[리눅스1] [6일차] [ #02 셸스크립트 case문 ]

by EunBird 2021. 5. 3.

셸스크립트 

#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 의 출력 결과를 출력하지 않게 한다.

 


 

 

 

 

 

 

 

 

 

 

728x90

댓글