TEST(1)

명칭
test, [ - 조건식 평가 유틸리티

서식
test expression [ expression]

해설
test 유틸리티는, 식을 평가해, 결과가 진이라면 0 (true)을, 가짜라면 1 (false)을 반환값으로서 돌려줍니다. 인수의 식이 없다 경우도 1 (false)을 돌려줍니다.

연산자나 플래그 등은, 하나하나 독립인 인수로서 test 유틸리티에 건네줍니다.

식은 이하의 기본 요소로부터 구성됩니다:

-b file
    file 하지만 존재해, 그것이 블록 특수 파일이다면 실로 됩니다.

-c file
    file 하지만 존재해, 그것이 캐릭터 특수 파일이다면 실로 됩니다.

-d file
    file 하지만 존재해, 그것이 디렉토리이다면 실로 됩니다.

-e file
    file 하지만 존재하면 실로 됩니다 (파일의 종류에 의선).

-f file
    file 하지만 존재해, 그것이 통상 파일이다면 실로 됩니다.

-g file
    file 하지만 존재해, 거기에 setgid 플래그가 서 있으면 실로 됩니다.

-h file
    file 하지만 존재해, 그것이 기호 연결이다면 실로 됩니다. 이 연산자는, 본프로그램의 이전의 버젼과의 호환성을 위해서(때문에) 있습니다. 이 연산자가 있는 것에 의존하지 않게 해 주세요. 대신에 -L (을)를 사용해 주세요.

-k file
    file 하지만 존재해, 거기에 스티키빗트가 서 있으면 실로 됩니다.

-n string
    string 의 길이가 0 이 아니면 실로 됩니다.

-p file
    file 하지만 이름 다하고 파이프 (FIFO) 이다면 실로 됩니다.

-r file
    file 하지만 존재해, 그것이 읽어들여 가능하면 실로 됩니다.

-s file
    file 하지만 존재해, 그 파일 사이즈가 0 보다 크면 실로 됩니다.

-t file_descriptor
    파일 기술자 번호가 file_descriptor 인 파일이 오픈되고 있어 이것이 단말에 묶을 수 있고 있으면 실로 됩니다.

-u file
    file 하지만 존재해, 거기에 setuid 플래그가 서 있으면 실로 됩니다.

-w file
    file 하지만 존재해, 기입해 가능하면 실로 됩니다. 진이라고 하는 것은, 기입 가능 플래그가 서 있는 것을 나타내는에 지나지 않습니다. 파일이 읽어들여 전용의 파일 시스템상에 있으면(자), 비록 이 판정이 진이어도 기입은 할 수 없습니다.

-x file
    file 하지만 존재해, 실행 가능하면 실로 됩니다. 진이라고 하는 것은, 실행 가능 플래그가 서 있는 것을 나타내는에 지나지 않습니다. file 하지만 디렉토리의 경우, 진은 file 하지만 검색 가능한 것을 나타냅니다.

-z string
    string 의 길이가 0 이면 실로 됩니다.

-L file
    file 하지만 존재해, 기호 연결의 경우에 실로 됩니다.

-O file
    file 하지만 존재해, 그 소유자와 본프로세스의 실효 유저 ID 가 매치 하는 경우에 실로 됩니다.

-G file
    file 하지만 존재해, 그 그룹과 본프로세스의 실효 그룹 ID 가 매치 하는 경우에 실로 됩니다.

-S file
    file 하지만 존재해, 소켓의 경우에 실로 됩니다.

file1 -nt file2
    file1 하지만 존재해, file2 보다 새로운 경우에 실로 됩니다.

file1 -ot file2
    file1 하지만 존재해, file2 보다 낡은 경우에 실로 됩니다.

file1 -ef file2
    file1 (와)과 file2 하지만 존재해, 이것들이 동일한 파일을 참조하는 경우에 실로 됩니다.

string
    string 하지만 공문자열이 아니면 실로 됩니다.

s1 = s2
    캐릭터 라인 s1 (와)과 s2 하지만 동일하면 실로 됩니다.

s1! = s2
    캐릭터 라인 s1 (와)과 s2 하지만 동일하지 않으면 실로 됩니다.

s1 < s2
    캐릭터 라인 s1 하지만 캐릭터 라인 s2 에 대해, 캐릭터의 ASCII 순서에 대해 앞에 오는 경우에 실로 됩니다.

s1 > s2
    캐릭터 라인 s1 하지만 캐릭터 라인 s2 에 대해, 캐릭터의 ASCII 순서에 대해 후에 오는 경우에 실로 됩니다.

s1  캐릭터 라인 s1 하지만 공문자열이 아닌 경우에 실로 됩니다.

n1 -eq n2
    정수 n1 (와)과 n2 하지만 동일하면 실로 됩니다.

n1 -ne n2
    정수 n1 (와)과 n2 하지만 동일하지 않으면 실로 됩니다.

n1 -gt n2
    정수 n1 하지만 n2 하지만 보다 크면 실로 됩니다.

n1 -ge n2
    정수 n1 하지만 n2 보다 큰가 동일하면 실로 됩니다.

n1 -lt n2
    정수 n1 하지만 n2 보다 작으면 실로 됩니다.

n1 -le n2
    정수 n1 하지만 n2 보다 작은가 동일하면 실로 됩니다.

이러한 기본 요소는 이하의 연산자와 조합할 수가 있습니다:

! expression
    expression 하지만 가짜라면 실로 됩니다.

expression1 -a expression2
    expression1 (와)과 expression2 의 양쪽 모두가 진이라면 실로 됩니다.

expression1 -o expression2
    expression1 (와)과 expression2 의 어느 쪽인지가 진이라면 실로 됩니다.

(expression)
    expression 하지만 진이라면 실로 됩니다.

-a 연산자는 -o 연산자보다 우선됩니다.

쉘에 따라서는, 본유틸리티와 동일한, 편입의 test 명령을 제공하고 있습니다. builtin(1) 메뉴얼 페이지를 참조해 주세요.

문법의 애매성
test 에 사용되고 있는 문법은 본질적으로 애매합니다. 어느 정도의 일관성을 확보하기 위해(때문에), p1003.2 의 D11. 2/4. 62.4 절로 진술되고 있는 케이스에 관해서는, 이 표준화 문서가 규정하는 규칙에 일관해 따른 평가를 합니다. 그러나 그 외의 케이스 그럼, 명령이 가지는 의미의 애매함에 좌우됩니다.

반환값
test 유틸리티는 다음의 몇개의 값을 돌려줍니다.

0   식을 평가한 결과가 진이다

1   식을 평가한 결과가 가짜인지, 식이 없다

>1  에러가 발생했다

관련 항목
builtin(1), expr(1), sh(1)

표준
test 유틸리티는, p1003.2 사양의 상위 호환 실장입니다.