test 명령

용도

조건식을 평가합니다.

구문

test Expression

또는

[ Expression ]

설명

test 명령은 Expression 매개변수를 평가하고 표현식 값이 참인 경우 제로(참) 종료값을 리턴합니다. 그렇지 않은 경우 test 명령은 제로가 아닌(거짓) 종료값을 리턴합니다. test 명령은 매개변수가 없는 경우에도 제로가 아닌 종료값을 리턴합니다.

요구사항:
  • 두 번째 양식 명령에서 [ ](대괄호)는 공백 간격 안에 묶어야 합니다.
  • C 쉘에서 파일 이름을 명시적으로 테스트해야 합니다. 파일 이름 대체로 쉘 스크립트가 종료됩니다.

함수 및 연산자는 test 명령에서 개별 매개변수로 처리됩니다. Expression 매개변수는 참 또는 거짓 조건에 대해 검사되는 명령문을 나타냅니다. 이 매개변수 구성에는 다음 함수가 사용됩니다.

항목 설명
-b FileName 지정된 FileName이 존재하고 블록 특수 파일인 경우 종료값 참을 리턴합니다.
-c FileName 지정된 FileName이 존재하고 문자 특수 파일인 경우 종료값 참을 리턴합니다.
-d FileName 지정된 FileName이 존재하고 디렉토리인 경우 종료값 참을 리턴합니다.
-e FileName 지정된 FileName이 존재하는 경우 종료값 참을 리턴합니다.
-f FileName 지정된 FileName이 존재하고 일반 파일인 경우 종료값 참을 리턴합니다.
-g FileName 지정된 FileName이 존재하고 그 설정 그룹 ID 비트가 설정되는 경우 종료값 참을 리턴합니다.
-h FileName 지정된 FileName이 존재하고 기호 링크인 경우 종료값 참을 리턴합니다.
-k FileName 지정된 FileName이 존재하고 그 고착 비트가 설정되는 경우 종료값 참을 리턴합니다.
-L FileName 지정된 FileName이 존재하고 기호 링크인 경우 종료값 참을 리턴합니다.
-n String1 String1 변수의 길이가 제로가 아닌 경우 종료값 참을 리턴합니다.
-p FileName 지정된 FileName이 존재하고 이름 붙여진 파이프(FIFO)인 경우 종료값 참을 리턴합니다.
-r FileName 지정된 FileName이 존재하고 이를 현재 프로세스가 읽을 수 있는 경우 종료값 참을 리턴합니다.
-s FileName 지정된 FileName이 존재하고 크기가 0보다 큰 경우 종료값 참을 리턴합니다.
-t FileDescriptor FileDescriptor의 파일 설명자 번호를 가지는 파일이 열리고 터미널과 연관된 경우 종료값 참을 리턴합니다.
-u FileName 지정된 FileName이 존재하고 그 설정 사용자 ID 비트가 설정되는 경우 종료값 참을 리턴합니다.
-w FileName 지정된 FileName이 존재하고 쓰기 플래그가 온인 경우 종료값 참을 리턴합니다. 그러나 FileNametest가 참을 표시하더라도 읽기 전용 파일 시스템에서 쓰기 가능하지 않습니다.
-x FileName 지정된 FileName이 존재하고 실행 플래그가 온인 경우 종료값 참을 리턴합니다. 지정된 파일이 존재하고 디렉토리인 경우 종료값 참은 현재 프로세스에 디렉토리 검색에 대한 사용 권한이 있음을 나타냅니다.
-z String1 String1 변수의 길이가 제로(0)인 경우 종료값 참을 리턴합니다.
String1= String2 String1String2 변수가 동일한 경우 종료값 참을 리턴합니다.
String1!=String2 String1String2 변수가 동일하지 않은 경우 종료값 참을 리턴합니다.
String1 String1 변수가 널(null) 문자열이 아닌 경우 종료값 참을 리턴합니다.
Integer1 -eq Integer2 Integer1Integer2 변수가 대수적으로 같은 경우 종료값 참을 리턴합니다. 비교 함수 -ne, -gt, -ge, -lt, -le 중 하나를 -eq 대신 사용할 수 있습니다.
file1 -nt file2 file1file2보다 신규이면 참입니다.
file1 -ot file2 file1file2보다 이전이면 참입니다.
file1 -ef file2 file1file2의 다른 이름인 경우 참입니다.

이러한 함수는 다음 연산자와 결합할 수 있습니다.

항목 설명
! 단항 부정 연산자입니다.
-a 2진 AND 연산자입니다.
-o 2진 OR 연산자(즉, -a 연산자가 -o 연산자에 비해 높은 우선순위를 가짐).
\(Expression\) 그룹화를 위한 소괄호입니다.

종료 상태

이 명령은 다음 종료값을 리턴합니다.

항목 설명
0 Expression 매개변수는 참입니다.
1 Expression 매개변수가 거짓이거나 누락되었습니다.
>1 오류가 발생했습니다.

예제

  1. 파일이 존재하고 비어 있지 않은지 여부를 테스트하려면 다음 명령을 입력하십시오.
    
    if test ! -s "$1"
    then
       echo $1 does not exist or is empty.
    fi

    쉘 프로시저에 대해 첫 번째 위치 매개변수에서 지정된 파일 $1이 존재하지 않으면 test 명령이 오류 메시지를 표시합니다. $1이 존재하고 크기가 0보다 큰 경우 test 명령이 아무 것도 표시하지 않습니다.

    주: -s 함수와 파일 이름 사이에 공백이 있어야 합니다.

    $1 양쪽의 인용 부호는 $1의 값이 널(null) 문자열인 경우에도 테스트가 제대로 작동하도록 합니다. 인용 부호가 생략되고 $1이 비어 있는 문자열인 경우 test 명령은 오류 메시지 test: argument expected.를 표시합니다.

  2. 복잡한 비교를 수행하려면 다음을 입력하십시오.
    if [ $# -lt 2 -o ! -e "$1" ]
    then
       exit
    fi

    쉘 프로시저가 두 위치 매개변수보다 적게 지정되거나 $1이 지정하는 파일이 존재하지 않는 경우 쉘 프로시저가 종료됩니다. 특수 쉘 변수 $#는 이 쉘 프로시저를 시작하는 명령행에 입력되는 위치 매개변수의 수를 나타냅니다.

운영 체제 및 장치 관리에서 Shells는 일반적으로 쉘을 설명하고 쉘을 이해하는 데 유용한 항목을 정의하며 보다 유용한 쉘 기능을 설명합니다.

파일

항목 설명
/usr/bin/test test 명령을 포함합니다.