일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- SSH
- OS(operating system)
- script
- Update
- MS Windows PE
- portable
- Disk Partition
- PC
- network
- explorer
- UNIX
- FTP
- webhard
- apm
- 대항해시대
- Command
- MS windows
- Backup(Restore)
- javascript
- Network Info(Tool)
- Linux
- program
- Crack(Serial Key)
- calculator
- Windows 10
- H/W
- Programming
- game
- web
- LiveCD(USB)
- Today
- Total
<In Story>
Shell Script 기본 - 1.if문 (2) 테스트 연산자 // [Unix] [Linux] [Script] [Programming] 본문
Shell Script 기본 - 1.if문 (2) 테스트 연산자 // [Unix] [Linux] [Script] [Programming]
<In Story, Hi story, History> 2015. 5. 25. 12:47http://ktdsoss.tistory.com/104
(2) 테스트 연산자
[ ](대괄호) 안의 조건식에는 여러 종류의 테스트 연산자를 사용할 수 있으며, 연산자의 종류 및 기능은 다음과 같습니다.
* 다음 조건을 충족시킬 경우, true 리턴
-e : 존재하는 파일
-f : 보통 파일
-d : 파일이 디렉토리
-s : 파일 크기가 0이 아님
-z : 문자열이 null임. 길이가 0
-n : 문자열이 null이 아님
-c : 파일이 문자 디바이스(키보드, 모뎀, 사운드 카드..)
-b : 파일이 블럭 디바이스(플로피나 CD롬)
-p : 파일이 파이프
-h : 파일이 하드 링크
-L : 파일이 심볼릭 링크
-S : 파일이 소켓
-t : 파일 디스크립터가 터미널 디바이스와 연관 있음
-r : 테스트를 돌리는 사용자가 읽기 퍼미션을 갖고 있음
-w : 테스트를 돌리는 사용자가 쓰기 퍼미션을 갖고 있음
-x : 테스트를 돌리는 사용자가 실행 퍼미션을 갖고 있음
-g : 파일이나 디렉토리에 set-group-id 플래그가 세팅되어 있음
가령 예를 들자면,
if [ -d /tmp ]; then
echo '/tmp 디렉토리가 존재합니다.' else echo '/tmp 디렉토리가 존재하지 않습니다.' fi |
위와 같이 사용하면 됩니다.
파일과 관련한 연산자일 경우는 연산자 뒤에 파일명이, 디렉토리와 관련한 연산자일 경우는 연산자 뒤에 디렉토리명이 명시되어야 합니다.
다음은 산술 비교 연산자 및 문자열 비교 연산자입니다.
산술 비교 연산자 |
문자열 비교 연산자 |
-eq (equal) |
== |
-ne (not equal) |
!= |
-gt (greater than) |
|
-ge (greater than or equal) |
|
-lt (less than) |
|
-le (less than or equal) |
|
산술 비교 연산자는 수치 비교를 위해 사용되며, 다음과 같이 사용됩니다.
if [ ${input} -eq 0 ]; then
echo 'input 값은 0과 같습니다.' else echo 'input 값은 0과 같지 않습니다.' fi |
문자열 비교 연산자는 문자열 비교를 위해 사용되고 대소문자를 구분하며, 다음과 같이 사용됩니다.
if [ ${input} == "Test" ]; then
echo 'input 값은 Test 문자열과 같습니다.' else echo 'input 값은 Test 문자열과 같지 않습니다.' fi |
'$(달러)' 문자로 시작되는 값은 변수를 의미합니다.