배쉬 스크립트를 사용할 때 set -e 옵션을 이용하여
스크립트 실행 중 오류가 발생하면 종료하게 설정이 가능하다.
#!/bin/bash set -e
위와 같이 설정하여 사용한다.
에러가 나면 종료된다고 해서 잘쓰고 있었는데 사용에 주의해야 할 점이 하나있다.
* 그리고 외국사이트를 검색해보니 사용을 추천하지 않더라.
set -e의 경우 명령어를 실행한 리턴코드가 0이 아니면 프로그램을 종료하게 된다.
따라서 grep 같은 경우에 반환하는 값이 없으면 오류가 발생한 것이 되서 프로그램이 종료된다.
프로그램이 어떻게 실행되었는지 확인하기 위해서 grep 을 사용하여 단순 로그를 출력하는 프로그램을 작성했는데
grep의 반환결과가 없어서 프로그램이 종료되어 버렸다.
set -e 옵션을 이용하여 프로그램의 에러를 검출하고 싶을때는 리턴코드를 잘 생각해보고 사용한다.
그리고 되도록 set -e 옵션보다는 trap 을 이용하여 에러를 검출하여 처리하는 로직을 사용하는 것이 좋다.
참고
반응형
'리눅스 > Bash' 카테고리의 다른 글
[ssh] ssh 접속시 접속 여부 물어보는 부분 없이 접속하기 (0) | 2016.02.12 |
---|---|
[curl] curl 명령어 처리시 부가 정보 없이 조회하기 (1) | 2016.02.12 |
[bash][date] date 명령어 사용하기 (0) | 2015.12.28 |
[Tip] Bash 쉘 history에서 시간 나오게 하기 (0) | 2015.12.09 |
[linux] gzip, gunzip 명령어 (0) | 2015.07.01 |