본문 바로가기
리눅스/Bash

bash 스크립트의 set -e 옵션 이용시 주의 사항

by hs_seo 2016. 1. 25.

배쉬 스크립트를 사용할 때 set -e 옵션을 이용하여

스크립트 실행 중 오류가 발생하면 종료하게 설정이 가능하다.


#!/bin/bash
set -e


위와 같이 설정하여 사용한다.


에러가 나면 종료된다고 해서 잘쓰고 있었는데 사용에 주의해야 할 점이 하나있다.

* 그리고 외국사이트를 검색해보니 사용을 추천하지 않더라.


set -e의 경우 명령어를 실행한 리턴코드가 0이 아니면 프로그램을 종료하게 된다.

따라서 grep 같은 경우에 반환하는 값이 없으면 오류가 발생한 것이 되서 프로그램이 종료된다.


프로그램이 어떻게 실행되었는지 확인하기 위해서 grep 을 사용하여 단순 로그를 출력하는 프로그램을 작성했는데

grep의 반환결과가 없어서 프로그램이 종료되어 버렸다.


set -e 옵션을 이용하여 프로그램의 에러를 검출하고 싶을때는 리턴코드를 잘 생각해보고 사용한다.

그리고 되도록 set -e 옵션보다는 trap 을 이용하여 에러를 검출하여 처리하는 로직을 사용하는 것이 좋다.




참고


반응형