리눅스/Bash
bash 스크립트의 set -e 옵션 이용시 주의 사항
hs_seo
2016. 1. 25. 13:43
배쉬 스크립트를 사용할 때 set -e 옵션을 이용하여
스크립트 실행 중 오류가 발생하면 종료하게 설정이 가능하다.
#!/bin/bash set -e
위와 같이 설정하여 사용한다.
에러가 나면 종료된다고 해서 잘쓰고 있었는데 사용에 주의해야 할 점이 하나있다.
* 그리고 외국사이트를 검색해보니 사용을 추천하지 않더라.
set -e의 경우 명령어를 실행한 리턴코드가 0이 아니면 프로그램을 종료하게 된다.
따라서 grep 같은 경우에 반환하는 값이 없으면 오류가 발생한 것이 되서 프로그램이 종료된다.
프로그램이 어떻게 실행되었는지 확인하기 위해서 grep 을 사용하여 단순 로그를 출력하는 프로그램을 작성했는데
grep의 반환결과가 없어서 프로그램이 종료되어 버렸다.
set -e 옵션을 이용하여 프로그램의 에러를 검출하고 싶을때는 리턴코드를 잘 생각해보고 사용한다.
그리고 되도록 set -e 옵션보다는 trap 을 이용하여 에러를 검출하여 처리하는 로직을 사용하는 것이 좋다.
참고
반응형