00 개요
- 역시나 shell script에서 등장하기에 정리해 놓으려 한다..
01 test 명령어란
1. test 정의
- 시험 ㅎㅎ
2. test 명령어 기능
- 파일 타입을 확인하고 값들을 비교한다
- 파일의 존재 유무 / 타입 / 권한을 확인할 때 사용한다
- 조건문이 들어가야할 위치에 test가 광범위하게 사용된다
- EXPRESSION이 주어졌을 경우, EXPRESSION에 의해 결정된 상태(true or false)와 함께 종료
- EXPRESSION이 없을 경우 기본값은 false 상태로 exit
3. test 명령어 문법
# test EXPRESSION
# test
# [ EXPRESSION ] # 띄어쓰기 주의!
# [ ]
# [ OPTION
- [ 도 명령문이기 때문에 반드시 대괄호 [ ] 와 expression 사이에는 빈칸이 있어야 함
- 유닉스 시스템에서는 명령문과 argument 사이에 빈칸이 있어야 함
- 반환값: 명령의 결과가 긍정(true)이면 '0', 부정(false)이면 '1' 반환 (C언어와 반대!)
02 test 옵션
기본 옵션 | 설명 |
--help | 이 help 내용을 출력 후 exit |
--version | version 정보 출력 후 exit |
옵션 | 설명 |
-e 파일이름 | 파일이 존재하는지 여부 |
-f 파일이름 | 일반 파일인지 여부 |
-b 파일이름 | 파일이 블록파일로 존재하는지 여부 |
-c 파일이름 | 파일이 캐릭터파일로 존재하는지 여부 |
-d 파일이름 | 파일이 디렉토리인지 여 |
-g 파일이름 | SGID가 설정되어있는지 여부 |
-u 파일이름 | SUID가 설정되어있는지 여부 |
-k 파일이름 | sticky bit가 설정되어있는지 여부 (sticky bit가 설정된 파일/디렉토리는 생성한 사용자만이 삭제 가능) |
-h 파일이름 -L 파일이름 | 파일이 심볼릭 링크인지 여부 |
-r 파일이름 | 현 프로세스가 파일에 읽기 권한이 있는지 여부 |
-w 파일이름 | 파일에 쓰기 권한이 있는지 여부 read-only 파일시스템에서는 쓰기 권한이 있어도 쓰기가 안 될 수 있음 |
-x 파일이름 | 파일에 실행 권한이 있는지 여부 디렉토리에 실행권한이 있으면 cd 사용 가능 |
-p 파일이름 | 파일이 이름이 있는 파이프인지 여부 (FIFO) |
-s 파일이름 | 파일 사이즈가 0 초과인지 여부 |
-t FileDescriptor | 파일디스크립터가 현 터미널에서 열렸는지 여부 |
파일1 -nt 파일2 | 파일1이 파일2보다 새로운 파일인지 여부 (newer than) |
파일1 -ot 파일2 | 파일1이 파일2보다 오래된 파일인지 여부 (older than) |
파일1 -ef 파일2 | 파일1이 파일2의 또 다른 이름인지 여부 (symbolic link 또는 hard link) |
-n 문자열 | 문자열의 길이가 0 초과 (non-zero) |
-z 문자열 | 문자열의 길이가 0 (zero) |
문자열1 = 문자열2 | 문자열1과 문자열2가 일치 |
문자열1 != 문자열2 | 문자열1과 문자열2가 불일치 |
문자열 | 문자열은 NOT NULL |
정수1 -eq 정수2 | 정수1과 정수2는 일치 |
정수1 -ne 정수2 | 정수1과 정수2는 불일치 |
정수1 -gt 정수2 | 정수1은 정수2보다 큰 (greater than) |
정수1 -ge 정수2 | 정수1은 정수2보다 크거나 같은 (greater or equal) |
정수1 -lt 정수2 | 정수1은 정수2보다 작은 (lesser than) |
정수1 -le 정수2 | 정수1은 정수2보다 작거나 같은 (lesser or equal) |
! | 부정 |
-a | AND |
-o | OR (-a 연산자가 -o 보다 우선순위가 높음) |
\(Expression\) | '\'과 함께 쓰이는 괄호는 그룹을 지정할 때 사용 |
참조
'Shell' 카테고리의 다른 글
#! 셔뱅이란 (shell) (0) | 2024.09.10 |
---|---|
fatal (exit code variable 종료 상태 변수) (0) | 2024.06.07 |
while문 사용법 (shell script) (1) | 2024.06.04 |
Shell Script 함수 만들기 (0) | 2024.04.30 |
Shell 변수 (variable) (0) | 2024.04.30 |