test -d 로 디렉토리 존재 여부 테스트
이 단계에서는 -d 옵션과 함께 test 명령어를 사용하여 디렉토리가 존재하는지 확인하는 방법을 배우게 됩니다. 이는 Linux 에서 스크립팅 및 작업 자동화를 위한 기본적인 기술입니다.
test 명령어는 파일 유형을 확인하고 값을 비교하는 데 사용됩니다. 쉘 스크립트의 조건문 (예: if 문) 에서 테스트 결과에 따라 결정을 내리기 위해 자주 사용됩니다.
test 명령어의 -d 옵션은 주어진 경로가 디렉토리를 참조하는지 특별히 확인합니다.
실험해 봅시다. 현재 디렉토리는 /home/labex/project입니다. 이 디렉토리는 존재합니다.
다음 명령어를 입력하고 Enter 키를 누르세요:
test -d /home/labex/project
이 명령어를 실행한 후, 디렉토리가 존재하면 아무런 출력이 나타나지 않습니다. 이는 test 명령어가 성공하면 종료 상태 0 (일반적으로 Linux 에서 "성공"을 의미함) 을 반환하고 표준 출력에 아무것도 출력하지 않기 때문입니다.
이제 존재하지 않는 디렉토리를 테스트해 보겠습니다. 다음 명령어를 입력하고 Enter 키를 누르세요:
test -d /home/labex/nonexistent_directory
다시, test 명령어에서 직접적인 출력은 나타나지 않습니다. 그러나 이 명령어는 0 이 아닌 종료 상태를 반환합니다 (디렉토리가 존재하지 않으므로 "실패"를 나타냄).
마지막 명령의 종료 상태를 확인하려면 특수 변수 $?를 사용할 수 있습니다. 다음 명령어를 입력하고 Enter 키를 누르세요:
echo $?
/home/labex/project를 테스트한 후, echo $?는 0을 출력해야 합니다.
/home/labex/nonexistent_directory를 테스트한 후, echo $?는 0 이 아닌 숫자 (일반적으로 1) 를 출력해야 합니다.
종료 상태를 이해하는 것은 명령의 성공 또는 실패에 반응할 수 있는 스크립트를 작성하는 데 매우 중요합니다.