반응형
| 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
반응형
'Linux > Shell script' 카테고리의 다른 글
부팅시 WAS(Tomcat) 자동 재시작 (0) | 2023.08.21 |
---|---|
[Shell script] DB별 user 생성 및 sql문 실행 (2) | 2021.10.29 |
[shell script] if문 비었을 때 에러가 발생되지 않게 하기 (0) | 2021.10.27 |
CLI, shell script에서 mysql query 실행 (5.5/5.6/5.7 버전별 정리) (0) | 2021.10.22 |
Centos7 mysql 5.7 install script (0) | 2021.10.21 |
댓글