Linux/Shell script
[shell script] exception handling (예외 처리)
개폰지밥
2021. 10. 28. 08:00
반응형
| shell script 예외처리
많은 프로그램에서 예외처리는 예상치 못하게 명령이 실패했을 때 많이 사용된다.
자바에서는 try ~ catch문이 많이 사용된다.
하지만 쉘 스크립트는 별도 예외 처리 구문이 없다고 한다. 이에 따라 성공 여부를 판단해 조건문을 많이 사용한다고 한다.
리눅스에서 명령어의 정상 동작 여부는 echo $?를 확인한다.
정상동작 했을 경우에는 0이 나오고 나머지 경우에는 0을 제외한 숫자가 나오게 된다.
예를 들어 wget 명령어를 이용하여 mysql를 설치하려고 했는데
설치 도중에 certificate가 유효하지 않는 이슈 때문에 설치되다가 실패했다.
그 후 echo $?를 이용하여 명령어의 결과 값을 보면
실패 했기 때문에 0이 아닌 숫자 5가 나왔다.
반대로 wget 명령어를 이용하여 mysql 설치를 성공했을때의 결과값을 살펴보자.
0이 나오게 된다.
이 이론을 가지고 쉘 스크립트에 적용 할 수 있다.
| 쉘 스크립트에 적용해보기
mysql을 설치하는 wget 명령어가 성공했을 시에는 관련 패키지를 다운받는 sudo rpm -ivh mysql~이 실행되고, 실패시에는 mysql install이 failure했다는 문구가 뜨는 쉘 스크립트 입니다.
#mysql install
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm --no-check-certificate
#sucess check if 3
if [ $? -eq 0 ];then
#mysql package install
sudo rpm -ivh mysql57-community-release-el7-11.noarch.rpm
else
echo "mysql install failure! check you can to use wget etc..."
exit 9
fi
반응형