명령어 성공 여부

명령어를 실행하면 그에 따른 return이 $?에 저장이 된다.

0 이 리턴되면 정상, 0이 리턴되지 않으면 오류로 간주

쉘스크립트로 만들면 아래와 같다.

#!/bin/sh
ls /etc | grep hosts
if [ $? -eq 0 ];then
    echo "CMD OK!"
else
    echo "CMD Failure!"
    exit(9)
fi

그런데 더 간단하게 보이는 방법으로서

명령을 실행하고 나서 쉘의 &&   논리 연산자를 이용하는 방법이 있다.


CMD && 성공인 경우의 명령 || 실패인 경우의 명령

ls /etc | grep hosts \
&& echo "CMD OK!" \
|| {echo "CMD Failure!"; exit(9);}

근데 실패인 경우의 명령에서 명령들을 {}로 감싸주었다.

{}로 감싸주지 않으면 실패일 경우 echo “CMD Failure!” 명령어만 실행되고

exit(9)명령은 성공, 실패 여부 상관없이 실행된다.

Leave a comment