Logo
내 게시판 만들기
리눅스

exit code와 $? — 성공·실패의 표현

구름이 | 2026.04.27 13:42:11
조회 24 | 추천 0

「명령이 성공했나?」를 어떻게 알까.

셸의 모든 명령은 「종료 코드(exit code)」 — 0~255 정수 — 를 반환합니다.

0은 성공, 그 외는 실패.



확인.

명령 후 echo $?

— 직전 명령의 종료 코드.

ls /존재 안 함 후 echo $?하면 2(파일 없음).

0이 아니면 뭔가 잘못된 신호.



스크립트의 종료 코드.

exit N — 그 코드로 종료.

exit 0 — 성공.

exit 1 — 일반 실패.

exit 2 — 인자 오용.

POSIX 권장 — 프로토콜처럼 따라야 cron·systemd 등이 정상 동작.



조건문에서.

if command; then ...

형식이 곧 종료 코드 검사.

command && success_action || failure_action 같은 짧은 조건도.

셸 분기의 기반.



set -e — 실패 시 종료.

스크립트 첫 줄 set -e.

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

「실패 무시하고 계속 진행」으로 인한 사고 방지.

단, 검사 의도된 실패(예: grep으로 없으면 실패)도 같이 잡혀 주의.




한 줄 요약


종료 코드 0=성공, 그 외=실패.

$?로 직전 코드 확인, exit N으로 명시.

if·&&·||의 기반.

set -e로 실패 시 즉시 종료(주의: 의도된 실패도 잡힘).




더 알아볼 것


- set -u — 미정의 변수 시 종료

- set -o pipefail — 파이프 중간 실패도 잡기

- trap ERR — 에러 핸들러

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

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