bash script2023. 4. 7. 14:21

 

반달가면 이글루에서 백업 - http://bahndal.egloos.com/531678

 

스크립트 내부에서 실행하는 명령어가 제대로 실행이 되었는지 아니면 오류가 발생했는지에 따라 이후 대응하는 방식을 결정하려면, 일단 명령의 종료 상태(exit status)를 알아야 한다. 종료 상태는 $? 변수에 저장된다. 이 변수의 값이 0이면 실행을 정상적으로 마치고 종료한 것이고, 0이 아니면 오류가 발생한 것이다. 아래의 예시를 보자.

 

echo "abcd"

abcd

echo $?

0

 

문자열 abcd를 출력하라는 명령이 정상적으로 실행되고 종료되었으므로 종료 상태, 즉 $? 변수의 값은 0이 된다. echo 명령으로 값을 출력해서 확인할 수 있다.

 

만약 이미 존재하는 디렉토리를 다시 만들려고 한다면 오류가 발생할 것이다. 이 경우에는 $? 변수의 값이 0이 아니다.

 

mkdir ~/Documents

mkdir: cannot create directory

echo $?

1

 

$? 변수를 if 조건문에 활용하면 바로 앞의 명령에서 오류 발생 여부에 따라 이후에 실행할 명령을 다르게 정할 수 있다. 아래의 예시를 보면 금방 감이 잡힐 것이다.

 

mkdir $my_dir

if [[ "$?" -eq 0 ]]

then echo "mkdir 명령이 정상적으로 실행되었습니다."

else echo "mkdir 명령 실행중에 오류가 발생했습니다."

fi

 

 

 

728x90
Posted by 반달가면