쉘에서 실행되는 모든 명령은
종료 상태
(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에서 명령한 종료 상태를 반환합니다.
$ 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
이 나오면 실패
로 스크립트를 작성할 수도 있습니다.