exit code | 설명 |
---|---|
0 | 성공 |
1 | 일반적인 에러 |
2 | builtin shell command 에러 |
126 | command가 존재하지만 실행 불가 |
127 | command 존재 x |
128 | not used on shell |
128+N | signal N 으로 종료된 경우 |
255 | 범위 밖인 경우 |
#!/bin/bash sleep 30 echo "exit code(child) : $?"
jsg@jsg-ubuntu:~$ ./test.sh exit code(child) : 0
jsg@jsg-ubuntu:~$ ./test.sh ./test.sh: line 2: 4358 종료됨 sleep 30 exit code(child) : 143
=> 15(143-128)번 SIGNAL로 종료됐음을 알 수 있음
백그라운드 프로세스의 종료를 기다림
test.sh 가 다음과 같을 시
jsg@jsg-ubuntu:~$ cat test.sh #!/bin/bash sleep 30 echo "=====================" echo "exit code(child) : $?" echo "====================="
jsg@jsg-ubuntu:~$ ./test.sh 50 ./test.sh: line 2: 4439 종료됨 sleep 30 ===================== exit code(child) : 0 =====================
=> $?이 echo에 대한 exit code이므로 원하는 값을 얻을 수 없음
#!/bin/bash sleep 30 & echo "=====================" wait $! 2> /dev/null echo "exit code(child) : $?" echo "====================="
jsg@jsg-ubuntu:~$ ./test.sh ===================== exit code(child) : 143 =====================
jsg@jsg-ubuntu:~$ cat test.sh #!/bin/bash -e [ 10 -gt 20 ] jsg@jsg-ubuntu:~$ ./test.sh jsg@jsg-ubuntu:~$ echo $? 1