테스트(Unix)

test (Unix)
시험
기타 이름[
개발자다양한 오픈 소스 및 상용 개발자
기입처C
운영 체제Unix, Unix like, Plan 9, IBM i
플랫폼크로스 플랫폼
유형명령어
면허증.코어 유틸리티: GPLv3+
계획 9: MIT 라이선스

test는 Unix, Plan 9 및 Unix 유사 운영체제시스템에 있는 명령줄 유틸리티로 조건식을 평가합니다.테스트는 UNIX System III에서 1981년에 셸 빌트인 명령어로 전환되었으며 동시에 [][1]라는 대체 이름으로 사용할 수 있게 되었습니다.

개요

testUNIX의 명령어는expression파라미터를 지정합니다.대부분의 최신 셸 구현에서는 외부 버전이 아직 존재하더라도 이 내장되어 있습니다.이 명령어의 두 번째 형식에서는[ ](표준)는 공백으로 둘러싸야 합니다(이는[는 프로그램이며 POSIX 호환 셸에서는 프로그램 이름과 인수 사이에 공백이 필요합니다).C 쉘에서 파일 이름을 명시적으로 테스트해야 합니다.파일명 치환(글로빙)에 의해 셸 스크립트가 종료됩니다.

test명령어를 다른 명령어와 혼동하지 마십시오.[[ksh88에서 도입된 예약어.후자는 명령어가 아니라 ksh88 구문의 일부이며 glob 표현에 파일 이름 치환을 적용하지 않습니다.

의 버전test GNUcoreutils에 번들된 는 케빈 브라운스도르프와 매튜 브래드번이 [2]썼다.이 명령어는 일반적인 GNU Unix 유사 [3]유틸리티의 nativeWin32ports UnxUtils 컬렉션의 일부로 Microsoft Windows용 별도의 패키지로 사용할 수 있습니다.test 명령어는 IBM i 운영 [4]체제에도 이식되었습니다.

구문

테스트 표현

또는

[]

논쟁들

이 파라미터의 작성에는 다음 인수가 사용됩니다.

-e FileName - FileName이 존재합니다.

개체(파일 또는 문자열)가 존재하고 지정된 조건이 true이면 나머지 모든 인수는 true를 반환합니다.

-b 파일 이름 - 지정된 파일 이름이 존재하며 블록 특수 파일인 경우 True exit 값을 반환합니다. -c 파일 이름 - 파일 이름은 문자 특수 파일 -d 파일 이름 -d 파일 이름 - 파일 이름은 디렉토리 -f 파일 이름 - 파일 이름은 일반 파일 -g 파일 이름 - 파일 이름 - 파일 이름 - 파일 이름 - 파일 이름 - 그룹 ID가 설정됩니다.cky 비트가 설정되었습니다. - L FileName - FileName is set - fileName is symbolic link - p FileName - FileName is named pipe (FIFO) -r FileName - FileName 현재 프로세스에서 FileName을 읽을 수 있습니다. FileName의 크기가 0 -t FileDescriptor - FileDescript와 연결되어 있으며 터미널이 열려 있습니다.
-w FileName - FileName의 쓰기 플래그가 켜져 있습니다.단, 테스트 결과 true로 나타나도 읽기 전용 파일시스템에 FileName을 쓸 수 없습니다.
-x FileName - FileName의 실행 플래그가 켜져 있습니다.지정된 파일이 존재하고 디렉토리인 경우,Trueexit value는 현재 프로세스에 변경 권한이 있음을 나타냅니다.cd디렉토리로 이동합니다. 

비표준 Korn 쉘 확장:

file1 -nt file2 -file1이 file2 file1 -ot file2보다 최신입니다.file1이 file2보다 오래된 파일1 -ef file2 - file1은 file2의 다른 이름입니다(: 링크 또는 하드링크).

문자열 인수

Perl에서는 다음 섹션이 반전됩니다.eq문자열 연산자이고==숫자 연산자이며 다른 연산자도 마찬가지입니다.

-n String1 - String1 변수의 길이가 0이 아닌 -z String1 - String1 - String1 = String2 - String1 및 String2 변수가 동일한 String1 - String1 - String1 및 String2 변수가 null이 아닌 경우 True입니다.

number 인수

Integer1 - eq Integer2 - Integer1 및 Integer2 변수가 대수적으로 같음 - ne - not equal - gt - ge - greater or eq - lt - less than - le - less or eq

연산자

test인수는 다음 연산자와 조합할 수 있습니다.

! - 단항 부정 연산자 -a - 이진 AND 연산자 -o - 이진 OR 연산자(-a연산자의 precedence가 precedence보다 높다.-o연산자) \(Expression\) - 그룹화를 위한 괄호는 백슬래시로 이스케이프해야 합니다.\ 

-a그리고.-o연산자는 그룹화를 위한 괄호와 함께 XSI 확장자이므로[5] 이식할 수 없습니다.휴대용 셸 스크립트에서는 여러 호출을 연결함으로써 동일한 효과를 얻을 수 있습니다.test와 함께&&그리고. 연산자와 괄호.

종료 상태

이 명령어는 다음 종료 값을 반환합니다.

0 - Expression 파라미터가 true 1 - Expression 파라미터가 false 또는 missing > 1 - 오류가 발생하였습니다.

1. 파일이 존재하지 않거나 비어 있는지 테스트하려면 다음과 같이 입력합니다.

 test ! -s "$1"경우 에코 $1이 존재하지 않거나 비어 있습니다.fi

셸 프로시저의 첫 번째 위치 파라미터 $1로 지정된 파일이 존재하지 않거나 크기가0 인 경우 test 명령어는 메시지를 표시합니다.$1이 존재하고 크기가 0보다 클 경우 test 명령어는 아무것도 표시하지 않습니다.

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

$1 주위에 따옴표를 붙이면 $1의 값이 늘 문자열이어도 테스트가 올바르게 동작합니다.따옴표가 생략되고 $1이 빈 문자열인 경우 test 명령어는 다음 오류 메시지를 표시합니다.

test: 인수가 필요합니다. 

2. 복잡한 비교를 수행하려면 다음과 같이 입력합니다.

 [ $ # " - lt 2 ]![ - e " $ 1 ]의 경우는, fi 를 종료합니다.

셸 프로시저가 2개 미만의 위치 파라미터를 지정하거나 $1로 지정된 파일이 존재하지 않으면 셸 프로시저는 종료됩니다.특수 셸 변수 $#은 이 셸 프로시저를 시작하는 명령줄에 입력된 위치 파라미터의 수를 나타냅니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ http://www.in-ulm.de/~mascheck/bourne/#system3 Bourne 쉘이 System III에서 변경됨
  2. ^ test (1) - coreutils - Debian buster - Debian Manpages
  3. ^ "Native Win32 ports of some GNU utilities". unxutils.sourceforge.net.
  4. ^ IBM. "IBM System i Version 7.2 Programming Qshell" (PDF). Retrieved 2020-09-05.{{cite web}}: CS1 maint :url-status (링크)
  5. ^ IEEE 규격 1003.1, 2004, 매뉴얼test

추가 정보

외부 링크