쉘프로그래밍강좌037: 쉘프로그램내에서 사용되는 if~elif~else문의 사용방법과 실 사용 예
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,113 조회
- 0 추천
- 목록
본문
쉘프로그래밍강좌037: 쉘프로그램내에서 사용되는 if~elif~else문의 사용방법과 실 사용 예
리눅스 쉘프로그램내에서의 if~elif~else문은 여러 개의 조건식을 평가하여 프로그램의 흐름을 조건에 맞는 곳으로 분기하기 위한 목적으로 사용됩니다.
즉, 선택할 경우의 수가 여러 가지일 경우에 주로 사용되며 실제 쉘프로그램에서는 “if~elif~else”문과 case문이 같은 목적으로 사용됩니다.
사용형식은 다음과 같습니다.
if [ 테스트문 ]
then 위의 if참일 경우 실행될 명령문들
elif [ 테스트문 ] then 바로 위의 elif문이 참일 경우 실행될 명령문들
elif [ 테스트문 ] then 바로 위의 elif문이 참일 경우 실행될 명령문들
else 위의 모든 테스트문이 거짓일 경우에 실행될 명령문들 fi |
위의 사용형식을 보시면 이해가 되실 것입니다.
실제 간단한 쉘프로그램을 예로 들어 보겠습니다.
다음 예로든 쉘프로그램은 사용자의 점수를 입력 받아서 그 점수에 따른 등급을 출력하는 것입니다.
즉, 사용자가 입력한 값이
0점에서부터 20점까지이면 : “Your grade : E”를 출력 합니다.
21점에서부터 40점까지이면
: “Your grade : D”를 출력 합니다.
41점에서부터 60점까지이면
: “Your grade : C”를 출력 합니다.
61점에서부터 80점까지이면
: “Your grade : B”를 출력 합니다.
81점에서부터 100점까지이면 : “Your grade : A”를 출력 합니다.
그 외의 점수가 입력되면 : "It is impossible
point."를 출력 합니다.
즉, 아래의 쉘프로그램은 if~elif~else문을 사용한 것으로 위와 같이 처리 된다는 것을 알 수 있습니다.
[root@RockyLinux01 test]# cat if004.sh #!/bin/bash
echo "Input your point(from 0 to 100) : " read point
if [ $point -lt 0 -o $point -gt 100 ] then echo "It is impossible point."
elif [ $point -ge 0 -a $point -le 20 ] then echo " Your grade : E "
elif [ $point -ge 21 -a $point -le 40 ] then echo " Your grade : D "
elif [ $point -ge 41 -a $point -le 60 ] then echo " Your grade : C "
elif [ $point -ge 61 -a $point -le 80 ] then echo " Your grade : B "
elif [ $point -ge 81 -a $point -le 100 ] then echo " Your grade : A "
else echo " It is not allowed." fi [root@RockyLinux01 test]# |
아래는 if004.sh 쉘프로그램을 실행한 예입니다.
[root@RockyLinux01 test]# ./if004.sh Input your point(from 0 to 100) : 5 Your grade : E [root@RockyLinux01 test]# [root@RockyLinux01 test]# ./if004.sh Input your point(from 0 to 100) : 25 Your grade : D [root@RockyLinux01 test]# [root@RockyLinux01 test]# ./if004.sh Input your point(from 0 to 100) : 45 Your grade : C [root@RockyLinux01 test]# [root@RockyLinux01 test]# ./if004.sh Input your point(from 0 to 100) : 65 Your grade : B [root@RockyLinux01 test]# [root@RockyLinux01 test]# ./if004.sh Input your point(from 0 to 100) : 85 Your grade : A [root@RockyLinux01 test]# [root@RockyLinux01 test]# ./if004.sh Input your point(from 0 to 100) : 0 Your grade : E [root@RockyLinux01 test]# [root@RockyLinux01 test]# ./if004.sh Input your point(from 0 to 100) : -10 It is impossible point. [root@RockyLinux01 test]# [root@RockyLinux01 test]# ./if004.sh Input your point(from 0 to 100) : 110 It is impossible point. [root@RockyLinux01 test]# |
위의 결과를 보시면 각각의 입력점수에 맞게 등급이 출력됨을 알 수 있습니다.
그리고 만약 -10과 같은 음의 점수나 110과 같이 100이 넘는 점수일 경우에는 “It is impossible point.”메시지가 출력되었다는 것을 알 수 있습니다.
관련자료
-
이전
-
다음