안녕하세요. 언제나 휴일, 언휴예요.
이전 강의에서는 조건 표현이 참인지 거짓인지에 따라 수행하는 조건문을 살펴보았죠. 이번에는 특정 표현의 값에 따라 수행하는 선택문을 알아보아요.
특정 표현의 값에 따라 수행할 구문이 있을 때 if, elif를 이용할 수도 있어요. 하지만 case in 문을 사용하는 것이 효과적일 때가 많습니다.
case와 in 사이에 특정 변수 표현을 한 후에 특정 값과 닫는 괄호( ) )를 명시한 후에 수행할 구문을 작성합니다. 특정 값일 때 수행할 구문을 끝낼 때는 세미콜론을 두 개를 명시하세요. 명시하지 않은 모든 값일 때를 표현하는 것은 *) 입니다. 그리고 case in을 마무리할 때는 esac으로 닫습니다.
case 표현 in
값 A) 표현의 값이 A일 때 수행할 구문 ;;
값B) 표현의 값이 B일 때 수행할 구문 ;;
…중략…
*) 그 외의 값일 때 수행 구문 ;;
esac
다음은 수를 입력 받아 한글로 출력하는 예제입니다.
#casein_sh #쉘 프로그래밍 실습 #선택문 (정수를 입력받아 한글로 출력) #작성자 : eh. jang echo 수를 입력: read num case $num in 1) echo “하나” ;; 2) echo “둘” ;; 3) echo “셋” ;; *) echo “지원하지 않습니다.”;; esac
다음은 두 개의 수를 입력받은 후에 연산을 선택하면 연산 결과를 출력하는 예제입니다.
#cal_sh #쉘 프로그래밍 실습 #선택문(두 개의 수와 연산을 입력받아 결과 출력) #작성자 : eh. jang echo 첫 번째 수: read num1 echo 두 번째 수: read num2 echo "연산을 입력하세요.(1:더하기 2:빼기 3:곱하기 4:나누기 5:나머지):" read op case $op in 1) echo "add:$((num1+num2))";; 2) echo "sub:$((num1-num2))";; 3) echo "mul:$((num1*num2))";; 4) echo "div:$((num1/num2))";; 5) echo "mod:$((num1%num2))";; *) echo "잘못 선택하였군요.";; esac
다음은 실행 결과입니다.
첫 번째 수: 2 두 번째 수: 3 연산을 입력하세요.(1:더하기 2:빼기 3:곱하기 4:나누기 5:나머지): 2 sub:-1 첫 번째 수: 2 두 번째 수: 3 연산을 입력하세요.(1:더하기 2:빼기 3:곱하기 4:나누기 5:나머지): 1 add:5 첫 번째 수: 2 두 번째 수: 3 연산을 입력하세요.(1:더하기 2:빼기 3:곱하기 4:나누기 5:나머지): 3 mul:6 첫 번째 수: 2 두 번째 수: 3 연산을 입력하세요.(1:더하기 2:빼기 3:곱하기 4:나누기 5:나머지): 4 div:0 첫 번째 수: 2 두 번째 수: 3 연산을 입력하세요.(1:더하기 2:빼기 3:곱하기 4:나누기 5:나머지): 5 mod:2 첫 번째 수: 2 두 번째 수: 3 연산을 입력하세요.(1:더하기 2:빼기 3:곱하기 4:나누기 5:나머지): 6 잘못 선택하였군요.