bash script 에서 방금 전 수행한 명령의 exit status 를 읽어오는 변수( $? )가 있는데, 이를 이용하면 스크립트 수행중 에러 발견시 그 부분에서 stop 을 할 수 있다.
아래의 예를 보자
아래의 예를 보자
#!/bin/bash
echo "Test"
echo "Exit Status : " $? # Exit Status is 0
;a3ker2l3krjekrjwlk; #Unrecognized command.
echo "Exit Status : " $? # Exit Status is Non-zero
echo "Test"
echo "Exit Status : " $? # Exit Status is 0
;a3ker2l3krjekrjwlk; #Unrecognized command.
echo "Exit Status : " $? # Exit Status is Non-zero
0 이 아닌 값이 나오면 에러인데, 이는 사용하고자 하는 커맨드가 다르다. 만약 작성한 2개의 스크립트가 있고 한개의 스크립트(A라 하자)가 다른 한개(B라 하자) 내부에서 호출되는 경우, B 에 A의 exit status 를 알려주기 위해서 A 내부에는 반드시 exit 를 사용해야 한다. 아래의 예제를 보면 간단하게 이해할 수 있다.
<A.sh File>
#!/bin/bash
make
if [ $? -ne 0 ]; then
exit $?
mkdir test
exit $?
<B.sh File>
#!/bin/bash
./A.sh
if [ $? -ne 0 ]; then
exit $?
mkdir test2
exit $?
make
if [ $? -ne 0 ]; then
exit $?
mkdir test
exit $?
<B.sh File>
./A.sh
if [ $? -ne 0 ]; then
exit $?
mkdir test2
exit $?
Personal Tag : How to stop in bash script when internal command occurs failure
'Programming' 카테고리의 다른 글
GSA Valve Security framework - Google Enterprise EMEA (0) | 2010.07.21 |
---|---|
echo 시 줄바꿈 (newline) 안하고 싶은경우 (0) | 2010.06.28 |
Tip of Text Encoding in Java (0) | 2010.03.18 |
Big-endian, Little-endian, and Byte Order Mark (2) | 2010.03.18 |
JSON - JavaScript Object Notation (0) | 2010.03.02 |
댓글