메뉴 건너뛰기

XEDITION

study

Shell Script( 쉘 스크립트 ) if 문 사용법, 조건식

proin 2019.02.14 08:07 조회 수 : 0

https://jink1982.tistory.com/48


if 문 기본 사용 법


 

쉘에서 if문을 사용 시 조건 식이 문자로 되어있어 다소 어려움을 겪을 수 있습니다.

예를 들어 if ( a = b ) 이런 것이 if[ a -eq b ];then fi 형식으로 되어 있다 보니 if문을 사용 시 조건식을 보면서 짜야 할 정도 입니다.

 

우선 if문 기본 형식 부터 알아 봅시다.
 

 if [ 값1 조건식 값2 ];then

   수행문

 fi 

 

if 한칸 띄고 [ 넣고 값과 조건식을 넣어야 하는데 띄어쓰기도 틀리면 스크립트 에러가 나므로 유의하셔서 작성 하시기 바랍니다.

아래는 if문을 활용한 예제 입니다. 

 

#! /bin/ksh

 

value=0

 

if [ ${value} -eq 0 ];then

   echo value is 0  

fi

 

결과는 value가 0이므로 "value is 0"이 출력 됩니다.

 

if 문에 사용되는 조건문 종류


if문에 사용 되는 조건식은 아래와 같습니다.

 

[ -z ] : 문자열의 길이가 0이면 참

[ -n ] : 문자열의 길이가 0이 아니면 참

 

[ -eq ] : 값이 같으면 참

[ -ne ] : 값이 다르면 참

[ -gt ] :  값1 > 값2

[ -ge ] : 값1  >= 값2

[ -lt ] : 값1 < 값2

[ -le ] : 값1 <= 값2

 

[ -a ] : &&연산과 동일 and 연산

[ -o ] : ||연산과 동일 xor 연산

 

[ -d ] : 파일이 디렉토리면 참

[ -e ] : 파일이 있으면 참

[ -L ] : 파일이 심볼릭 링크면 참

[ -r ] : 파일이 읽기 가능하면 참

[ -s ] : 파일의 크기가 0 보다 크면 참

[ -w ] : 파일이 쓰기 가능하면 참

[ -x ] : 파일이 실행 가능하면 참

[ 파일1 -nt 파일2 ]  : 파일1이 파일2보다 최신파일이면 참

[ 파일1 -ot 파일2 ]  : 파일1이 파일2보다 이전파일이면 참

[ 파일1 -ef 파일2 ] : 파일1이 파일2랑 같은 파일이면 참

 

if문에 다양한 조건식을 활용한 예제 입니다.

 

#! /bin/ksh

 

value=0

 

if [ ${value} -eq 0 ];then

   echo value is 0  

fi

 

if [ ${value} -ne 1 ];then

    echo value is not 1

fi

 

test=5

 

if [ ${test} -gt 2 -a ${test} -le 7 ];then

    echo test greater then 2 and lower then 7

fi 

 

여기서 AND와 OR 조건 사용 형식에 대해 알아보겠습니다.

 

[AND] 

 if [ 값1 조건식 값2 -a 값1 조건식 값2 ];then

   수행문

 fi 

 

[OR] 

 if [ 값1 조건식 값2 -o 값1 조건식 값2 ];then

   수행문

 fi 

 

 


 

번호 제목 글쓴이 날짜 조회 수
64 [아두이노] ArduCAM Mini Cameras Tutorial proin 2019.06.14 0
63 [아두이노] DHT11 + PHPoc proin 2019.06.11 3
62 Turning on an LED with your Raspberry Pi's GPIO Pins proin 2019.05.13 0
61 Smart Raspberry Pi CPU fan proin 2019.05.13 0
60 [PHP기초] 데이터 집합 - 배열다루기 proin 2019.04.29 0
59 build 중 서버와 연결이 끊어지거나 컴퓨터를 끄고 퇴근해야 한다면? proin 2019.04.29 1
58 Linux 기본명령어 screen proin 2019.04.29 0
57 동기가사 검색 프로그램 GetLyrics2 v1.0.1.0 file proin 2019.04.28 1
56 리눅스 스왑 proin 2019.04.27 12
55 [C#] MySQL 데이터 저장시 한글이 깨질 때 proin 2019.02.27 0
54 [C#] [c#.NET]초간단 Mysql DB와 C# 연동 및 값 추가 하기(mysql테이블만들기) proin 2019.02.27 0
53 [Excel] (VBA) 피벗 테이블 (Pivot table) proin 2019.02.21 0
52 [Excel] VBA 실행 속도 빠르게 하기 proin 2019.02.21 0
51 [Excel] 엑셀 VBA IF 지시 구문 사용하는 방법, IF … ELSEIF … ELSE … ENDIF proin 2019.02.21 0
50 [Excel] 엑셀(Excel) VBA - 특정 조건의 데이터를 삭제하고자 할 때 proin 2019.02.21 0
» Shell Script( 쉘 스크립트 ) if 문 사용법, 조건식 proin 2019.02.14 0
48 bash 스크립트 && - 한 자리 숫자 변수에 0을 더함 proin 2019.02.14 0
47 리눅스 tar.gz와 압축/해제 명령어 proin 2019.02.14 2
46 PHP MySQL 레코드 가져오기 (mysqli_fetch_array) proin 2019.01.11 0
45 [PHP] 26. 파일 생성/쓰기(File Create/Write) - PHP 강좌, PHP5 proin 2019.01.11 1
위로