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"로 되어 있는 것을 알 수 있다.