System Admin

본문 바로가기
사이트 내 전체검색


RedHat Linux >> System Administration for Redhat Linux
[목차]
제2장 쉘 프로그래밍

    6. 조건문 Ⅰ - if..else


이 문법은 조건에 맞을 경우 then 이후의 문장을 수행하며 그렇지 않을 경우에는else 문을 수행하게 됩니다.

일반적인 문법은 다음과 같다.

if test
then
     commands(참일때)
else
     commands(거짓일때)
fi

then, else,fi단어 들은 쉘에서 사용되는 예약어이며, 이것들의 구분은 그 단어 다음에 줄 바꿈 문자를 사용하든지;(세미콜론) 문자를 사용합니다. if 문의 끝은 fi로 종료합니다.

if test
then
     commands(참일때)
else if test
     then
     commands(거짓일 때)
     fi
fi

if문은 위와 같이 내포문으로 중첨해서 사용될 수도 있습니다. 줄여서 아래와 같이 사용할 수 있습니다.

if ...
then ...
elif ...
...
fi

이 문법은 조건에 맞을 경우 then 이후의 문장을 수행하며 그렇지 않을 경우에는 elif 또는 else 문을 수행하게 됩니다.

예 : /etc/rc.d/rc.local

if [ -f /etc/redhat-release ]; then
cat /etc/redhat-release

else

echo "release unknow"

fi

앞의 스크립트는 /etc/redhat-release가 존재한다면 /etc/redhat-release라는 파일을 화면에 보여주며, 없을 경우에는 'release unknow'을 출력합니다. if 문장의 끝에 fi를 사용했습니다. 주의하세요.

위에서 보면 -f 라는 옵션이 있는데 이것은 /etc/redhat-release라는 파일이 존재할 경우 참의 값을 갖게 하는 것입니다. 이외에도 파일에 관련된 많은 옵션이 있는데 간단히 알아보고 넘어 갑시다.

-f 파일이 존재한다면

-d 디렉토리이면

-x 실행 가능하다면

앞의 옵션은 가장 많이 사용되는 파일 관련 옵션이므로 간단히 외워두기 바랍니다.

 

예 :

# vi if1.sh

#!/bin/sh
echo "What's this ?"
read aaa
if [ $aaa = "table" ]
then
    echo "GOOD !!!"
else
    echo "Failure "
fi

exit 0

위에서 table 이라고 입력하면 GOOD이 나타나게 됩니다. 그렇지 않으면, Failure가 나타납니다.

 

test 문에서 사용할 수 있는 연산자는 다음과 같다.

사용방법 :

test $A 연산자 $B
또는
[ $A 연산자 $B ]

 

문자열 비교

string1 = string2        두문자열이 같다면 참
string1 != string2       두문자열이 같지 않다면 참
-n string                문자열이 null이 아니라면 참
-z string                문자열이 null(빈문자열)이라면 참

 

산술비교

식1 -eq 식2       두식이 같다면 참
식1 -ne 식2       두식이 같지 않다면 참
식1 -gt 식2       식1이 식2보다 크다면 참
식1 -ge 식2       식1이 식2보다 크거나 같다면 참
식1 -lt 식2       식1이 식2보다 작다면 참
식1 -le 식2       식1이 식2보다 작거나 같다면 참

 

파일조건

-d file         file이 디렉토리라면 참
-e file         file이 존재한다면 참
-f file         file이 정규파일이라면 참
-g file         file상에 set-group-id가 설정되어 있으면 참
-r file         file이 읽기 가능하다면 참
-s file         file의 크기가 0이 아니라면 참
-u file         file상에 set-user-id가 설정되어 있으면 참
-w file         file이 쓰기 가능하다면 참
-x file         file이 실행 가능하다면 참
 

 

 

 

[목차]

개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.