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