본문 바로가기

[OS]Operating System/[Linux]

[Linux] bash shell - 조건문 사용법

728x90
반응형

Bash shell - if문

#!/bin/bash

if [ 조건식 ]   # 조건식에는 아래 비교 연산자를 활용
then
    명령어
elif [ 조건식 ]
then
    명령어
else
    명령어
fi

# 아래처럼 줄여서 사용도 가능하다.

if [ 조건식 ]; then
    명령어
elif [ 조건식 ]; then
    명령어
else
    명령어
fi

# 이중 괄호로 조건식을 묶으면 산술 연산자(>,< 등)를 사용할 수 있다.

if (( 조건식 )); then
    명령어
elif (( 조건식 )); then
    명령어
else
    명령어
fi

 

조건문

산술연산자

-eq       : 두 수가 같음(equal)
            if [ "$a" -eq "$b" ]

-ne       : 두 수가 같지 않음(not equal)
            if [ "$a" -ne "$b" ]

-gt       : 왼쪽이 오른쪽보다 더 큼(greater than)
            if ["$a" -gt "$b" ]

-ge       : 왼쪽이 오른쪽보다 더 크거나 같음(greater than or equal)
            if [ "$a" -ge "$b" ]

-lt       : 왼쪽이 오른쪽보다 더 작음(less than)
            if [ "$a" -lt "$b" ]

-le       : 왼쪽이 오른쪽보다 더 작거나 같음(less than or equal)
            if [ "$a" -le "$b" ]

[ 부등호는 이중 소활호 (()) 에서 사용할 수 있다. ]
<         : 왼쪽이 오른쪽보다 더 작음
            if (( "$a" < "$b" ))

<=        : 왼쪽이 오른쪽보다 더 작거나 같음
            if (( "$a" <= "$b" ))

>         : 왼쪽이 오른쪽보다 더 큼
            if (( "$a" > "$b" ))

>=        : 왼쪽이 오른쪽보다 더 크거나 같음
            if (( "$a" >= "$b" ))

 

문자열 비교 연산자

=         : 두 문자열이 같음
            if [ "$a" = "$b" ]

==        : 두 문자열이 같음 ('=' 와 같은 동작)
            if [ "$a" == "$b" ]

            [[ $a == z* ]]    # $a 가 "z"로 시작하면 참(패턴 매칭)
            [[ $a == "z*" ]]  # $a 가 z* 와 같다면 참

            [ $a == z* ]      # 파일 globbing이나 낱말 조각남이 일어남
            [ "$a" == "z*" ]  # $a 가 z* 와 같다면 참

!=        : 두 문자열이 같지 않음
            if [ "$a" != "$b" ]

            [ 부등호는 이중 대괄호 [[]] 에서 이스케이프 없이 사용할 수 있다. ]

<         : 왼쪽이 오른쪽보다 아스키 알파벳 순서에서 더 작음
            if [[ "$a" < "$b" ]] 또는,
            if [ "$a" \< "$b" ]

            '<' 를 [ ] 에서 쓰려면 이스케이프 시켜야 한다.

>         : 왼쪽이 오른쪽보다 아스키 알파벳 순서에서 더 큼
            if [[ "$a" > "$b" ]]
            if [ "$a" \> "$b" ]

            '>' 를 [ ] 에서 쓰려면 이스케이프 시켜야 한다.

-z        : 문자열이 "null"임. 즉, 길이가 0

-n        : 문자열이 "null"이 아님.

 

논리 연산자

-a        : 논리 and
            if [ "$exp1" -a "$exp2" ] 는 exp1 과 exp2 모두 참일 경우에만 참을 리턴합니다.
            [[ condition1 && condition2 ]] 와 비슷하다.

-o        : 논리 or
            if [ "$exp1" -o "$exp2" 는 exp1 이나 exp2 중 하나라도 참일 경우에 참을 리턴합니다.
            [[ condition1 || condition2 ]] 와 비슷하다.

 

 

 


Reference

반응형