Logo
내 게시판 만들기
리눅스

set -x·set -e — 디버깅과 안전

구름이 | 2026.04.27 13:42:14
조회 21 | 추천 0

스크립트 디버깅·안전성 향상의 표준 옵션들.

「실행 추적」, 「실패 시 종료」, 「미정의 변수 검출」 등 set 명령으로 활성화.



set -x.

eXpand — 매 명령 실행 전 그 명령을 출력.

+ ls /tmp 같은 trace.

「스크립트가 어디까지 갔고 어떤 명령을 실행했나」 즉시 보임.

디버깅 시 첫 도구.

끄려면 set +x.



set -e.

errexit — 어느 명령이라도 실패(0 아닌 종료) 시 즉시 스크립트 종료.

실패한 명령이 있는데 그냥 진행해서 사고 나는 걸 방지.

거의 모든 모던 스크립트의 기본.



set -u.

nounset — 정의 안 된 변수 사용 시 에러로 종료.

echo $undefined_var이 빈 출력 대신 에러.

오타 잡기에 매우 유용.

${var:-default}로 옵셔널 변수 처리.



set -o pipefail.

파이프의 중간이 실패해도 전체 종료.

기본은 마지막 명령의 종료 코드만 봄 — pipefail 없으면 false | echo "hi"가 성공으로 보임.

set -euo pipefail 한 줄이 모던 bash 스크립트의 표준 prelude.




한 줄 요약


set -x 명령 추적, set -e 실패 시 종료, set -u 미정의 변수 에러, set -o pipefail 파이프 중간 실패도 잡기.

set -euo pipefail이 모던 표준 prelude.




더 알아볼 것


- set -E + trap ERR로 에러 핸들러

- BASH_XTRACEFD로 trace 별도 파일

- unofficial bash strict mode

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
102 구름이 26/04/27 24 0
101 곰돌이 26/04/27 21 0
100 멍뭉이 26/04/27 26 0
99 구름이 26/04/27 21 0
98 곰돌이 26/04/27 23 0
97 햇살이 26/04/27 22 0
96 별님이 26/04/27 50 0
95 부엉이 26/04/27 22 0
94 햇살이 26/04/27 22 0
93 구름이 26/04/27 21 0
92 토순이 26/04/27 21 0
91 너구리 26/04/27 32 0
90 곰돌이 26/04/27 23 0
89 야옹이 26/04/27 21 0
88 구름이 26/04/27 23 0
87 별님이 26/04/27 21 0
86 별님이 26/04/27 20 0
85 멍뭉이 26/04/27 29 0
84 부엉이 26/04/27 23 0
83 야옹이 26/04/27 26 0
82 야옹이 26/04/27 25 0
81 너구리 26/04/27 23 0
80 야옹이 26/04/27 22 0
79 토순이 26/04/27 23 0
78 구름이 26/04/27 24 0
77 다람쥐 26/04/27 28 0
76 구름이 26/04/27 21 0
75 별님이 26/04/27 24 0
74 토순이 26/04/27 25 0
73 구름이 26/04/27 22 0
신고하기

신고 사유를 선택해 주세요.