Raspberry Pi_Kor_10.5.2 “test” 명령


Published Book on Amazon


All of IOT

Starting with the Latest Raspberry Pi from Beginner to Advanced – Volume 1

All of IOT

Starting with the Latest Raspberry Pi from Beginner to Advanced – Volume 2


출판된 한글판 도서


최신 라즈베리파이(Raspberry Pi)로 시작하는 사

물인터넷(IOT)의 모든 것 – 초보에서 고급까지 (상)

최신 라즈베리파이(Raspberry Pi)로 시작하는 사

물인터넷(IOT)의 모든 것 – 초보에서 고급까지 (하)


Original Book Contents


10.5.2  "test" 명령

 

이 명령은 파일 상태를 점검하거나 논리 연산을 하여 그 결과가 "True", "False"인지에 따라 exit status를 지정한다.

 

[명령 형식]

test    < 파일 연산식  |  논리 연산식 >

 

[명령 개요]

    지정된 연산식에 대해서 조건식의 결과에 따라 exit status를 지정한다.

    user 권한    -- 일반 user.

 

[상세 설명]

    True, False에 대한 값은 다음과 같다.

    True                 -- 0      -- zero             

    False                -- 1      -- non zero

    조건 연산식을 지정하지 않으면 False값을 되돌려 준다.

    연산식

 

논리 연산

( EXPRESSION )

EXPRESSION is true

 

! EXPRESSION

EXPRESSION is false

 

EXPRESSION1 -a EXPRESSION2

both EXPRESSION1 and EXPRESSION2 are true

 

EXPRESSION1 -o EXPRESSION2

either EXPRESSION1 or EXPRESSION2 is true

string 연산

-n STRING

the length of STRING is nonzero

 

-z STRING

the length of STRING is zero

 

STRING1 = STRING2

the strings are equal

 

STRING1 != STRING2

the strings are not equal

산술 연산

INTEGER1 -eq INTEGER2

INTEGER1 is equal to INTEGER2

 

INTEGER1 -ge INTEGER2

INTEGER1 is greater than or equal to INTEGER2

 

INTEGER1 -gt INTEGER2

INTEGER1 is greater than INTEGER2

 

INTEGER1 -le INTEGER2

INTEGER1 is less than or equal to INTEGER2

 

INTEGER1 -lt INTEGER2

INTEGER1 is less than INTEGER2

 

INTEGER1 -ne INTEGER2

INTEGER1 is not equal to INTEGER2

파일 연산

FILE1 -ef FILE2

FILE1 and FILE2 have the same device and inode numbers

 

FILE1 -nt FILE2

FILE1 is newer (modification date) than FILE2

 

FILE1 -ot FILE2

FILE1 is older than FILE2

 

-b FILE

FILE exists and is block special

 

-c FILE

FILE exists and is character special

 

-d FILE

FILE exists and is a directory

 

-e FILE

FILE exists

 

-f FILE

FILE exists and is a regular file

 

-g FILE

FILE exists and is set-group-ID

 

-G FILE

FILE exists and is owned by the effective group ID

 

-h FILE

FILE exists and is a symbolic link (same as -L)

 

-k FILE

FILE exists and has its sticky bit set

 

-L FILE

FILE exists and is a symbolic link (same as -h)

 

-O FILE

FILE exists and is owned by the effective user ID

 

-p FILE

FILE exists and is a named pipe

 

-r FILE

FILE exists and read permission is granted

 

-s FILE

FILE exists and has a size greater than zero

 

-S FILE

FILE exists and is a socket

 

t FD

- file descriptor FD is opened on a terminal

 

-u FILE

FILE exists and its set-user-ID bit is set

 

-w FILE

FILE exists and write permission is granted

 

-x FILE

FILE exists and execute (or search) permission is granted

 

 


 

[주요 Option]

--help

display this help and exit

--version

output version information and exit

 

[사용 Example]

다음은 "test_data"라는 파일이 존재하는지를 점검하고, 그에 따라 exit status가 어떻게 처리되는지를 확인하는 것이다.

 

pi@raspberrypi ~ $ ls -l

drwxr-xr-x 2 pi pi  4096 Apr 29 14:47 backups

drwxr-xr-x 2 pi pi  4096 Apr 28 15:34 Desktop

drwx------ 2 pi pi  4096 Apr 11 18:58 Downloads

drwxrwxr-x 2 pi pi  4096 Mar 24 11:37 python_games

drwxr-xr-x 2 pi pi  4096 May  1 11:16 Script

drwxr-xr-x 5 pi pi  4096 Apr 25 17:11 testdata

pi@raspberrypi ~ $ echo $?

0

pi@raspberrypi ~ $ test -e test-data

pi@raspberrypi ~ $ echo $?

1

 

점검 이전의 exit status 0으로 되어 있는데, 점검 이후에는 해당 파일이 없어서 exit status "False" 값인 "1"로 되어 있는 것을 알 수 있다.


 

Leave a Reply