Search

'if condition'에 해당되는 글 1건

  1. 2019.06.16 쉘 스크립트 작성(3)

쉘 스크립트 작성(3)

Developer/Linux 2019. 6. 16. 20:04 Posted by JAKE_SLEEPY
조건 실행

if [ condition ]
then
    command set
fi

대괄호 앞 뒤에는 한칸 띄어져 있어야 한다.

대괄호 안에는 조건을 적는다.

condition 에는 숫자 비교, 문자열 비교, 파일 비교를 통해 조건 생성



숫자 비교
비교식
기능
num1 -eq num2
num1 과 num2가 같은지 확인한다.
num1 -ne num2
num1 과 num2가 다른지 확인한다.
num1 -ge num2
num1이 num2 보다 크거나 같은지 확인한다.
num1 -gt num2
num1이 num2보다 큰지 확인한다.
num1 -le num2
num1이 num2보다 작거나 같은지 확인한다.
num1 -lt num2
num1이 num2보다 작은지 확인한다.
#!/bin/bash

val_1=45
val_2=36

if [ $val_1 -lt 50 ]
then
    echo "value 1 is less than 50"
else
    echo "value 2 is greater than or equal to 50"
fi

if [ $val_1 -eq $val_2 ]
then
    echo "value 1 is equal to value 2"
else
    echo "value 1 is not equal to value 2"
fi


결과







문자열 비교

비교식
기능
str1 = str2
str1이 str2와 같은지 확인한다.
str1 != str2
str1이 str2와 다른지 확인한다.
str1 < str2
str1이 str2보다 작은지 확인한다.
str1 > str2
str1이 str2보다 큰지 확인한다.
-n str
str의 길이가 0보다 큰지 확인한다.
-z str
str의 길이가 0인지 확인한다.

[ 두 문자열이 일치하는지 확인 ]




결과






[ 두 문자열의 크기 비교 ]


결과


banana??

실행 오류의 원인: 

    부등호 기호를 이스케이프 하지 않아서 리다이렉트 기호로 해석해버렸기 때문.


수정

    


결과

    




[ 데이터 존재 유무 확인 ]


결과






파일 비교

비교식
기능
-d file
파일이 존재하며, 파일의 종류가 디렉토리인가?
-e file
파일이 존재하는가? (파일 종류는 상관X)
-f file
파일이 존재하고 정규 파일(Regular file)인가?
-r file
파일이 존재하며, 읽을 수 있는가?
-s file
파일이 존재하며, 비어 있지 않은가?
-w file
파일이 존재하며, 기록할 수 있는가?
-x file
파일이 존재하며, 실행할 수 있는가?
-O file
파일이 존재하며, 현재 사용자가 소유했는가?
-G file
파일이 존재하며, 기본 그룹이 현재 사용자와 같은가?
file_1 -nt file_2
file_1이 file_2보다 새것인가?
file_1 -ot file_2
file_1이 file_2보다 오래되었나?


A regular file is a file that is not a directory, symlink, socket, device, etc.

[ -e  FILE ] :   /etc/hosts = TRUE , /dev/null = TRUE
[ -f  FILE ] :   /etc/hosts =  TRUE, /dev/null  = FALSE


[ 디렉토리가 존재하는지 확인한 후에 디렉토리 위치 변경]


결과


[ 파일이 존재하면 현재 날짜와 시간을 그 파일에 추가 ]




결과








 



'Developer > Linux' 카테고리의 다른 글

쉘 스크립트 작성(5)  (0) 2019.06.18
쉘 스크립트 작성(4)  (0) 2019.06.18
쉘 스크립트 작성(2)  (0) 2019.06.16
쉘 스크립트 작성  (0) 2019.06.16
쉘 스크립트 파일 만들기  (0) 2019.06.09