본문 바로가기
Programming/ETC

[Shell] 기본적인 쉘 스크립트 프로그래밍 정리 - 조건문

by 코딩의성지 2020. 10. 20.

오늘은 쉘 스크립트의 조건문을 정리해보겠다.

 

if문

 

대부분의 프로그래밍 언어에서 이 if 문은 지원된다.

기본적으로 아래의 문법을 따른다.

 

기본 if 문

if [ 조건 ]
then
    참일 경우 실행되는 부분
fi

여기서 [ 조건 ] 각각의 단어 사이 사이가 공백으로 구분되어 있어야한다는 것을 기억하자. 

 

예시로 스크립트를 하나 작성해봤다.

 

이 스크립트를 실행해보면 다음과 같다

 

if ~else 문

 

if else 문은 yes or no 를 묻는거다. 형식은 아래와 같다.

if [ 조건 ]
then
    참일 경우 실행되는 부분
else
    거짓일 경우 실행되는 부분
fi

 

if~ else 문도 간단하게 예제코드를 작성해보았다.

 

이 스크립트를 실행시켜보면 ... 

이렇게 결과가 뜨는걸 볼 수 있다.

 

if~ elif ~else 

elif 가 포함된 조건문은 조건이 여러개일 때 사용한다.

if [ 조건1 ]
then
    조건1에 맞는 내용이 실행되는 부분
elif [ 조건2 ]
then
    조건2에 맞는 내용이 실행되는 부분
else
    그외의 내용이 실행되는 부분
fi

 

예를 통해 보여드리겠다.

 

결과는 아래와 같다.

 

조건문에 사용되는 연산자와 처리조건

 

문자열비교연산자

문자열 비교 방법 내용
"문자열1" = "문자열2" 두 문자열이 같을 때 참
"문자열1" != "문자열2" 두 문자열이 다를 때 참
-n "문자열" 문자열이 NULL이 아니면 참
-z "문자열" 문자열이 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 보다 작거나 같으면 참
!수식 수식 자체가 거짓이면 참

 

파일관련 처리 조건

 

if문에서 파일을 처리할때 사용하는 조건이다. 이 부분은 서버 설정할때 굉장히 많이 사용하니 잘 정리해놓자.

파일의 조건 내용
-d 파일이름 파일이 디렉토리 일 경우 참
-e 파일이름 파일이 존재할 경우 참
-f 파일이름 파일이 일반 파일이면 참
-g 파일이름 파일에 set-group-id가 설정될 경우 참
-r 파일이름 파일이 읽기 가능이면 참
-s 파일이름 파일크기가 0이 아닐때 참
-u 파일이름 파일에 set-user-id가 설정될 경우 참
-w 파일이름 파일이 쓰기 가능이면 참
-x 파일이름 파일이 읽기 가능이면 참

 

AND ,OR 연산자

연산자 내용
-a and 연산, [] 안에서 사용가능,특수문자 안에는 \ 붙여야함
&& and 연산
-o or 연산, [] 안에서 사용가능,특수문자 안에는 \ 붙여야함
|| or 연산

 

case~esac 문

if 문은 조건이 늘어나면 깔끔하지 못하고 복잡해진다.  프로그래밍 언어에서 이런 조건문을 깔끔하게 사용하고 싶을때 switch case 문을 쓰는데 여기 쉘 스크립트에도 그렇게 사용할 수가 있다.

 

 

case "$변수명" in
    조건1)
        조건1에 따른 결과 실행;;
    조건2)
        조건2에 따른 결과 실행1
        조건2에 따른 결과 실행2;;
    조건3)
        조건3에 따른 결과 실행;;
    *)
        그 외 실행
esac

 

 간단한 예제를 작성해보자. 아주 간단하게 작성은했지만 ㅎㅎ 실제로 서버 재기동 스크립트를 짤때 이런식으로 짠다 !

호출 결과는 아래와 같다.

 

 

반응형

댓글