프로세스 종료 상태 코드란
- 명령의 종료 코드 또는 종료 상태는 프로세스가
종료된 후에 해당 프로세스가 성공적으로 실행되었는지 또는 오류가 발생했는지를 나타내는 숫자 값
종료 코드의 의미
- 0 ~ 255 범위의 숫자를 OS에 돌려줌
- 쉘이 이 값을 받아서 다음 작업(조건문, 파이프라인 등)에 활용
0 : 성공
1 ~ 255 : 실패(프로그램/상황마다 의미가 다를 수 있음)
자주 보는 케이스
1 : 일반적인 실패
2 : 잘못된 사용법/옵션
126 : 파일은 있지만 실행 권한 없음
127 : 명령을 찾을 수 없음
128 + N : 시그널 N에 의해 종료
- SIGINT(2) -> 130
- SIGKILL(9) -> 137
종료 코드 확인 방법
1. 바로 직전에 실행한 명령의 종료 코드
-----------------------------
echo $?
EX)
ls not_exist
echo $?
=>
보통 2가 나옴(리눅스 ls는 "파일/디렉토리 없음"을 2로 주는 편)
2. 종료 코드 직접 지정하기(스크립트)
----------------------------
exit 0 // 성공으로 종료
exit 1 // 실패로 종료
exit 42 // 임의 코드
3. 조건문에서 활용
--------------
command
if [ $? -eq 0 ]; then // -eq 는 "[]" 테스트(조건식)에서 숫자 같음을 비교
echo "성공"
else
echo "실패"
fi
=> 더 간단히
if command; then
ehco "성공"
else
echo "실패"
fi