(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 플래그가 세팅되어 있음
가령 예를 들자면,
echo '/tmp 디렉토리가 존재합니다.' else echo '/tmp 디렉토리가 존재하지 않습니다.' fi
if [ -d /tmp ]; then
위와 같이 사용하면 됩니다.
파일과 관련한 연산자일 경우는 연산자 뒤에 파일명이, 디렉토리와 관련한 연산자일 경우는 연산자 뒤에 디렉토리명이 명시되어야 합니다.
다음은 산술 비교 연산자 및 문자열 비교 연산자입니다.
산술 비교 연산자 문자열 비교 연산자 -eq (equal) == -ne (not equal) != -gt (greater than) -ge (greater than or equal) -lt (less than) -le (less than or equal)
산술 비교 연산자는 수치 비교를 위해 사용되며, 다음과 같이 사용됩니다.
echo 'input 값은 0과 같습니다.' else echo 'input 값은 0과 같지 않습니다.' fi
if [ ${input} -eq 0 ]; then
문자열 비교 연산자는 문자열 비교를 위해 사용되고 대소문자를 구분하며, 다음과 같이 사용됩니다.
echo 'input 값은 Test 문자열과 같습니다.' else echo 'input 값은 Test 문자열과 같지 않습니다.' fi
if [ ${input} == "Test" ]; then
'$(달러)' 문자로 시작되는 값은 변수를 의미합니다.
'3. OS이야기 > 03. Shell Script' 카테고리의 다른 글
[UNIX/LINUX] Shell Script 기본 - 2.기본 문법 (3) 배열 (0) | 2014.04.24 |
---|---|
[UNIX/LINUX] Shell Script 기본 - 2.기본 문법 (1) 변수 할당, (2) 수치 계산 (0) | 2014.04.22 |
[UNIX/LINUX] Shell Script 기본 - 1.if문 (4) 예제 (0) | 2014.04.22 |
[UNIX/LINUX] Shell Script 기본 - 1.if문 (3) 논리 연산자 (0) | 2014.04.18 |
[UNIX/LINUX] Shell Script 기본 - 1.if문 (1) 기본 사용법 (0) | 2014.04.17 |