IT/bash 스크립트

bash 스크립트 비교연산자 if문 사용법 while문

조원태 2016. 1. 29. 17:28
반응형

bash 스크립트 비교연산자 if문 사용법 while문

 

리눅스를 운영하다보면 쉘 스크립트를 해야 할 경우가 발생합니다. 하지만 전문적으로 이 분야에게 일하는 사람이 아니라면 명령어나 문법이 생각이 나지 않을 경우가 많습니다. 

 

 

간단한 프로그램을 만들 경우 쉘 스크립트를 이용하는 경우가 있는데요. 

 

비교연산자와 if문에 대해 알아보도록 할게요. 

 

 

쉘에서 시간을 가지고 온 후 지정된 시간이 되면 작동하는 프로그램을 살펴보도록 할게요. 

 

 

 

while true 

do 

H=`date +%H`

 

if [ $H -ge 22 ]; then 

 

내용 ~~~

fi

done

 

위 소스는 22시간이 이상이 되면 작동하는 소스입니다. 

 

ge는 크거나 같음을 뜻합니다.

 

 

[ 정수 비교 ]

 연산자

의미 

표현 

-eq

(같음)

if [ $a -eq $b ]

-ne

(같지 않음)

if [ $a -ne $b ]

-gt

(보다 큼)

if [ $a -gt $b ]

-ge

(크거나 같음)

if [ $a -ge $b ]

-lt

(보다 작음)

if [ $a -lt $b ]

-le

(작거나 같음)

if [ $a -le $b ]

>

(보다 큼)

(($a > $b))

>=

(크거나 같음)

(($a >= $b))

<

(보다 작음)

(($a < $b))

<=

(작거나 같음)

(($a <= $b))


[ 문자열 비교 ]

 연산자

의미 

표현

=

(같음) 

if [ "$a" = "$b" ]

==

(같음)

if [ "$a" == "$b" ]

!= 

(같지 않음)

if [ "$a" != "$b" ]

-z

(문자열이 "null"임. 길이가 0)

if [ -z "$a" ]

! -z

(문자열이 "null"이 아님.)

if [ ! -z "$a" ]

-n

(문자열이 "null"이 아님.) 

if [ -n "$a" ]

>

(ASCII값이 보다 큼.)

if [[ "$a" > "$b" ]]

if [ "$a" \> "$b" ]

<

(ASCII값이 보다 작음.)

if [[ "$a" < "$b" ]]

if [ "$a" \< "$b" ]

참고

 

 

[[ "$a" == a* ]]

$a 가 "a"로 시작하면 참 (패턴 매칭)

[[ "$a" == "a*" ]]

$a 가 "a*" 와 같다면 참

[ "$a" == a* ]

잘못된 표현

[ "$a" == "a*" ]

$a 가 "a*" 와 같다면 참

 

[ 복합 비교 ]

 연산자

의미 

표현 

-a

(논리 and)

if [ $a -eq 0 -a $b -eq 1 ]

-o

(논리 or)

if [ $a -eq 0 -o $b -eq 1 ]

&&

(논리 and)

if [ $a -eq 0 ] && [ $b -eq 1 ]

if [[ $a -eq 0 && $b -eq 1 ]]

||

(논리 or)

if [ $a -eq 0 ] || [ $b -eq 1 ]

if [[ $a -eq 0 || $b -eq 1 ]]


[ 파일 비교 ]

 연산자

의미 

표현 

-d

Directory

if [ -d FILE ]

-f

File

if [ -f FILE ]

-e

Exist

if [ -e FILE ]

-r

Readable

if [ -r FILE ]

-w

Writable

if [ -w FILE ]

-x

Execuable

if [ -x FILE ]

-s


if [ -s FILE ]

-O

Same Owner

if [ -O FILE ]

-G

Same Group

if [ -G FILE ]

-nt

Newer Than

if [ FILE1 -nt FILE2 ]

-ot

Older Than

if [ FILE1 -ot FILE2 ]


반응형