본문 바로가기

Linux

[bash] shell 스크립트에서 set +e와 set -e 명령어 기능

반응형

 

 

set -e

쉘 스크립트 명령어 중 하나의 명령어가 실패하면 다음 명령어를 수행하지 않고 스크립트를 종료한다.

예를들면 아래와 같다.

 

1
2
3
4
5
#!/bin/bash
 
set -e
rm -rf target
mkdir target
cs

위 코드에서 만약 rm -rf가 실패하면 mkdir를 수행하지 않는다.

 

주의할 점은 명령어 수행후 리턴코드가 0인지 아닌지를 검사하기 때문에, 반환 값이 없는 명령어 수행의 경우 오류로 판단하기도 한다.

 

 

set +e

에러가 발생해도 다음명령어를 계속 수행한다. 

1
2
3
4
5
#!/bin/bash
 
set +e
rm -rf target
mkdir target
cs

rm -rf 가 실패해도 mkdir를 수행한다. 

 

반응형