[shell script] 종료 코드 처리

HYEOB KIM·2022년 4월 12일
0

Shell

목록 보기
7/71

쉘에서 실행되는 모든 명령은 종료 상태(exit status)를 반환합니다.

종료 상태 확인 방법

종료 상태는 $?를 이용해 확인할 수 있습니다.

예를 들어, 정상적으로 명령을 실행한 후에 echo $?를 통해 종료 상태를 출력해볼 수 있습니다.

$ date
Tue 12 Apr 2022 07:12:33 AM UTC
$ echo $?
0

리눅스 종료 상태 코드

아래는 종료 상태 코드에 대한 표준 규칙입니다.

  • 0 : 명령이 성공적으로 완료됨
  • 1 : 알 수 없는 오류
  • 2 : 쉘 명령을 잘못 사용함
  • 126 : 명령을 실행할 수 없음. (Permission denied)
  • 127 : 명령을 찾을 수 없음. (command not found)
  • 128 : 잘못된 종료 매개변수.
  • 128+x : 치명적인 오류
  • 130 : <Ctrl>+<C>로 명령이 종료됨.
  • 255 : 종료 상태가 범위를 벗어남. (종료 상태가 255 초과)

exit 명령

exit <종료 상태> 명령을 스크립트에 추가하면 해당 스크립트가 실행된 후 exit에서 명령한 종료 상태를 반환합니다.

$ cat test1
#!/bin/bash
var1=3.14
var2=5
result=$(echo "scale=4; $var1 / $var2" | bc)
echo "result : $result"
exit $var2

$ ./test1
result : .6280

$ echo $?
5

이는 if-then 구문과 활용하면 해당 스크립트의 실행 성공/실패 여부를 알 수 있게 됩니다.

예를 들면, 종료 상태가 5가 나오면 성공, 6이 나오면 실패로 스크립트를 작성할 수도 있습니다.

profile
Devops Engineer

0개의 댓글