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이 존재하고 쓰기 플래그가 온인 경우 종료값 참을 리턴합니다. 그러나 FileName은 test가 참을 표시하더라도 읽기 전용 파일 시스템에서 쓰기 가능하지 않습니다. |
-x FileName | 지정된 FileName이 존재하고 실행 플래그가 온인 경우 종료값 참을 리턴합니다. 지정된 파일이 존재하고 디렉토리인 경우 종료값 참은 현재 프로세스에 디렉토리 검색에 대한 사용 권한이 있음을 나타냅니다. |
-z String1 | String1 변수의 길이가 제로(0)인 경우 종료값 참을 리턴합니다. |
String1= String2 | String1 및 String2 변수가 동일한 경우 종료값 참을 리턴합니다. |
String1!=String2 | String1 및 String2 변수가 동일하지 않은 경우 종료값 참을 리턴합니다. |
String1 | String1 변수가 널(null) 문자열이 아닌 경우 종료값 참을 리턴합니다. |
Integer1 -eq Integer2 | Integer1 및 Integer2 변수가 대수적으로 같은 경우 종료값 참을 리턴합니다. 비교 함수 -ne, -gt, -ge, -lt, -le 중 하나를 -eq 대신 사용할 수 있습니다. |
file1 -nt file2 | file1이 file2보다 신규이면 참입니다. |
file1 -ot file2 | file1이 file2보다 이전이면 참입니다. |
file1 -ef file2 | file1이 file2의 다른 이름인 경우 참입니다. |
이러한 함수는 다음 연산자와 결합할 수 있습니다.
항목 | 설명 |
---|---|
! | 단항 부정 연산자입니다. |
-a | 2진 AND 연산자입니다. |
-o | 2진 OR 연산자(즉, -a 연산자가 -o 연산자에 비해 높은 우선순위를 가짐). |
\(Expression\) | 그룹화를 위한 소괄호입니다. |
종료 상태
이 명령은 다음 종료값을 리턴합니다.
항목 | 설명 |
---|---|
0 | Expression 매개변수는 참입니다. |
1 | Expression 매개변수가 거짓이거나 누락되었습니다. |
>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.를 표시합니다.
- 복잡한 비교를 수행하려면 다음을 입력하십시오.
if [ $# -lt 2 -o ! -e "$1" ] then exit fi
쉘 프로시저가 두 위치 매개변수보다 적게 지정되거나 $1이 지정하는 파일이 존재하지 않는 경우 쉘 프로시저가 종료됩니다. 특수 쉘 변수 $#는 이 쉘 프로시저를 시작하는 명령행에 입력되는 위치 매개변수의 수를 나타냅니다.
운영 체제 및 장치 관리에서 Shells는 일반적으로 쉘을 설명하고 쉘을 이해하는 데 유용한 항목을 정의하며 보다 유용한 쉘 기능을 설명합니다.
파일
항목 | 설명 |
---|---|
/usr/bin/test | test 명령을 포함합니다. |