안녕하세요, 박현명입니다..
이번 글은 지난 글에 이어 Shell Script 작성 시 if문 사용법에 대한 두 번째 글입니다..
지난 글에서 공지해 드린 대로 이번 글에서는 if문 조건식에서 사용되는 각종 연산자 및 옵션 등에 대해서 설명 드리도록 하겠습니다..
--------------------------------------------------------------------------------(지난 글)--------------------------------------------------------------------------------
1. if문
(1) 기본 사용법
if [ 조건식 ]; then // if문 시작 ~
elif
~
else
~
fi // if문 종료
if문은 IT업계에 종사하는 분이라면 굳이 개발자가 아니더라도 누구나 다 알고 계실 겁니다..
elif 는 else if 구문이라는 것도 다 아실 것이구요..
위 구문에서 한 가지 주의할 점은 if문 선언 시의 띄어쓰기와 세미콜론(;) 입니다..
if 와 [ ](대괄호) 사이는 반드시 한 칸 띄워주어야 합니다..(제가 Shell Script를 처음 작성할 때 이 띄어쓰기를 간과했다가 한참을 헤맸던 기억이..;;)
그리고 위와 같이 if 와 then 을 한 line에 나열하려면 반드시 세미콜론(;)을 사용해야 합니다..
세미콜론을 사용하지 않으려면 다음과 같이 if 다음 열에 then 을 사용해야 합니다..
if [ 조건식 ]
then // if문 시작
~
elif
~
else
~
fi // if문 종료
또한, 조건식을 넣는 부분에 [ ](대괄호) 대신 test 구문을 사용할 수도 있습니다..
if test 조건식
then // if문 시작
~
elif
~
else
~
fi // if문 종료
test 구문과 [ ](대괄호)는 동일한 기능을 하며, 취향에 따라 골라 쓰면 됩니다..
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
(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
'$(달러)' 문자로 시작되는 값은 변수를 의미합니다..
두 번째 글은 여기서 마치도록 하겠습니다..
다음 글에서는 조건식의 조건이 두 개 이상일 경우 사용되는 연산자와 if문 예제 스크립트에 대해서 게재하도록 하겠습니다..
감사합니다..
'연구개발 > Linux' 카테고리의 다른 글
[UNIX/LINUX] Shell Script 기본 - 1.if문 (4) 예제 (0) | 2014.05.04 |
---|---|
[UNIX/LINUX] Shell Script 기본 - 1.if문 (3) 논리 연산자 (0) | 2014.05.04 |
[UNIX/LINUX] Shell Script 기본 - 1.if문 (1) 기본 사용법 (0) | 2014.05.04 |
centos 6.x max process 값 튜닝 for mysql (0) | 2014.04.13 |
php의 커넥션풀( Connection Pool) (0) | 2014.04.13 |