리눅스 쉘스크립트 비교연산자
비교연산자에 대해서 알아보자.
숫자 및 문자열 비교 그리고 파일 및 디렉토리 속성 및 존재여부를 비교할 수 있다.
그리고 if 조건문, case 분기문, for 및 while 반복문에 대해서도 알아보자.
▶ 비교연산자
숫자 비교
-eq |
같다 | if [ $VAR1 -eq $VAR2 ] |
-ne |
다르다 |
if [ $VAR1 -ne $VAR2 ] |
-gt |
크다(초과) |
if [ $VAR1 -gt $VAR2 ] |
-ge |
같거나크다(이상) |
if [ $VAR1 -ge $VAR2 ] |
-lt |
작다(미만) |
if [ $VAR1 -lt $VAR2 ] |
-le |
같거나작다(이하) |
if [ $VAR1 -le $VAR2 ] |
문자열 비교
-n | 문자열이 null 이 아니면 true | if [ -n "$STRING" ] |
-z | 문자열이 길이가 0 이면 true | if [ -z "$STRING" ] |
=, == | 문자열이 같으면 true | if [ "$STRING1" == "$STRING2" ] |
!= | 문자열이 다르면 true | if [ "$STRING1" != "$STRING2" ] |
기타
-r | 파일 속성이 읽기 가능한지 true | if [ -r "$FILEPATH" ] |
-w | 파일 속성이 쓰기 가능한지 true | if [ -w "$FILEPATH" ] |
-x | 파일 속성이 실행 가능한지 true | if [ -x "$FILEPATH" ] |
-s | 파일 사이즈가 0 이상이면 true | if [ -s "$FILEPATH" ] |
-d | 해당 디렉토리가 존재하면 true | if [ -d "$FILEPATH" ] |
-f | 해당 파일이 존재하면 true | if [ -f "$FILEPATH" ] |
-h | 해당 파일이 링크파일이면 true | if [ -h "$FILEPATH" ] |
! | 조건이 반대이면 true | if [ ! -r "$FILEPATH" ] |
AND 및 OR
-a | AND 조건 | if [ -r "$FILEPATH" -a -w "$FILEPATH" ] |
-o | OR 조건 | if [ -r "$FILEPATH" -o -w "$FILEPATH" ] |
다음에는 조건문에 대해서 알아보자.
▶ if 조건문
#!/bin/sh
VAR=3
if [ $VAR -eq 1 ] ; then
echo 1
elif [ $VAR -eq 2 ] ; then
echo 2
elif [ $VAR -eq 3 ] ; then
echo 3
else
echo -1
fi
▶ case 분기문
#!/bin/sh
VAR=3
case $VAR in
1)
echo 1;;
2)
echo 2;;
3)
echo 3;;
*)
echo -1;;
esac
STR="blue"
case "$STR" in
"red")
echo "Red";;
"green")
echo "Green";;
"blue")
echo "Blue";;
*)
echo "Default";;
esac
▶ for 반복문
#!/bin/sh
for VAR in {1,2,3,4,5}
do
echo $VAR
done
for USER in `ls /home`
do
echo $USER
done
▶ while 반복문
#!/bin/sh
VAR=10
while [ $VAR -gt 0 ]
do
echo $VAR
VAR=`expr "$VAR" "-" "1"`
done
expr은 계산시 꼭 필요하다.
'LINUX' 카테고리의 다른 글
리눅스 네트워크 트래픽 모니터링 vnstat 설치 (1) | 2016.05.25 |
---|---|
아파치 디렉토리 리스트 안나오게 하기 (0) | 2016.05.25 |
리눅스 swift 로 Object Storage 에 백업하기 스크립트 (0) | 2016.05.24 |
리눅스 time zone 변경하기 (0) | 2016.05.18 |
리눅스 하드디스크 퍼포먼스 테스트 (0) | 2016.05.16 |