반달가면 이글루에서 백업 - 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
'bash script' 카테고리의 다른 글
[bash: find] 파일/디렉토리 검색 속도 향상을 위한 색인(index) 만들기 (0) | 2023.04.07 |
---|---|
[bash: printf] 형식을 지정해서 출력하기 (0) | 2023.04.07 |
[bash: if] if 조건문에서 대괄호([ ]) 사용 (0) | 2022.08.05 |
[bash: find] find 명령에서 하위 디렉토리 범위를 지정해서 검색하기 (0) | 2021.09.24 |
[bash: sort, awk] 대용량 파일/디렉토리 찾기 (0) | 2021.09.24 |