- NEW초롱이의 하루
- kisa
- 길은 가면, 뒤에 있다
- C언어 예술가
- Zer0 day - Zer0 day
- Information Security
- Secure-EDU
- 앙큼한유채's 일상 Story
- Library of Ezbeat (잠정 폐쇄)
- The Factory
- 안드
- 모후모후의 커뮤니티
- 공학도의 잡다한 시선
- 안드2
- IT속에 코코아
- IP주소검색(whois)
- IP주소검색(좌표포함)
- 소프트웨어 경력 관리
- 해저 케이블 지도
- MAC주소검색
- IANA
- 포트번호검색
- 자신의IP확인
- 웹페이퍼캡처
- 나의패스워드보안등급
- 웹 취약점 분석
- IT용어정리
- GitHub
- 라이브러리 모음
- 웹마당넷
- 시스템콜참고
- BCD 변환
- 보안뉴스
- 코딩도장(C, Python)
- 백준알고리즘
- 코딩테스트 연습
- 웹 사이트 테스트
- 스크립트꾸미기
- ctf대회목록
- 전자신문
- hash 크랙
- CVE
- 도메인등록
- N클라우드
- BugBountyList
- 칼리공식사이트
- CR4FTING BOX
- 아스키코드 변환
- 웹 사이트 통계 및 평가
- PDF변환
- AWS 및 클라우드 정보
- 가상화 및 서버관련
- 티오리
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- RaspberryPi
- Java
- 클라우드
- 안드로이드
- ACL
- 메소드
- Android
- GUI
- GPIO
- System
- docker
- 쉘 스크립트
- Python
- 그라파나
- Linux
- 자바
- API
- LEVIATHAN
- 리눅스
- 프로젝트
- Shell script
- synology
- JSP
- centos docker
- 네트워크
- 쉘 스크립트 if문
- 쉘 스크립트 기초
- 라즈베리파이
- Tkinter
- nginx
- Today
- Total
IT창고
쉘 스크립트 if문 1 본문
이전에 쉘 스크립트의 기초에 대해 알아보았는데 이번에는 쉘 스크립트의 if문에 대해 알아보도록 하겠습니다.
스크립트는 위에서 아래로 순차적으로 명령이 실행되는데 if, for문 같은 조건식을 사용하면 조건에 따라 일부 명령어를 건너뛰는 등 스크립트가 제어하는게 가능해집니다.
쉘 스크립트에서 사용되는 if문의 구문은 아래와 같습니다.
# if-then
if [ 1 조건 2 ]; then
command
fi
위와 같이 기본 형식이며 아래와 같이 단순히 사용이 가능합니다.

위의 사진에 출력된 쉘 스크립트의 소스코드는 아래와 같습니다.
#!bin/bash
if ls -l / ; then
echo "루트 디렉토리 현황"
fi
#쉘 스크립트 if문 테스트
if문 안에는 조건식 없이 명령어만 넣어서 단순하게 사용이 가능합니다.
이번에는 조건식을 사용해보도록 하겠습니다.

위의 사진과 같은 결과는 아래의 소스코드에서 확인 가능한 쉘 스크립트로 만들어졌습니다.
#!bin/bash
if [ 1 -gt 2 ]; then
echo "1번 참"
else
echo "2번 거짓"
fi
위의 if문의 조건식을 보면 1 > 2로 참일 경우 1번 거짓일 경우 2번의 echo 명령어가 사용되는걸 확인할 수 있습니다.
조건식을 보면 1 > 2 가 아닌 1 -gt 2로 되어있는데 비교하는 숫자, 문자열에 따라 사용되는 조건식이 다릅니다.
조건식은 아래에 내용을 참고 합니다.
| 숫자 비교 조건식 | 설명 |
| 1 -eq 2 | 1 과 2가 같은지 확인 ( 1 = 2 ) |
| 1 -ge 2 | 1 과 2가 크거나 같은지 확인 ( 1 >= 2 ) |
| 1 -gt 2 | 1 과 2가 큰지 확인 ( 1 > 2 ) |
| 1 -le 2 | 1 과 2가 작거나 같은지 확인 ( 1 <= 2 ) |
| 1 -lt 2 | 1 과 2가 작은지 확인 ( 1 < 2 ) |
| 1 -ne 2 | 1 과 2가 다른지 확인 ( 1 != 2 ) |
| 문자열 비교 조건식 | 설명 |
| A < B | A 가 B 보다 작은지 확인 |
| A > B | A 가 B 보다 큰지 확인 |
| A = B | A 와 B가 같은지 확인 |
| A != B | A 와 B가 다른지 확인 |
| -n str | 문자열(str) 길이가 0보다 큰지 확인 |
| -z str | 문자열(str) 길이가 0인지 확인 |
조건식은 위와 같이 참고하여 if문에 적용하면 됩니다.
태스트 삼아 문자열 if문을 확인해보도록 하겠습니다.

위의 사진과 같은 결과는 아래의 소스코드에서 확인 가능한 쉘 스크립트로 만들어졌습니다.
#!bin/bash
if [ -z gsk123 ]; then
echo "1번 참"
else
echo "2번 거짓"
fi
echo ""
if [ -z ]; then
echo "1번 참"
else
echo "2번 거짓"
fi
문자열 비교식인 -z을 사용하여 문자열을 넣은것과 넣지 않는것 두가지를 비교해보았습니다.
결과 화면을 확인해보면 차이를 쉽게 확인해볼 수 있습니다.
마지막으로 숫자나 문자열이 아닌 리눅스의 파일을 비교하는 조건식을 확인해보도록 하겠습니다.

위의 사진과 같은 결과는 아래의 소스코드에서 확인 가능한 쉘 스크립트로 만들어졌습니다.
#!bin/bash
if [ -d /testgsk3/ ]; then
echo "1번 참"
else
echo "2번 거짓"
fi
echo ""
if [ -f /testgsk3/test.sh ]; then
echo "1번 참"
else
echo "2번 거짓"
fi
echo ""
if [ -f /testgsk3/gsk.sh ]; then
echo "1번 참"
else
echo "2번 거짓"
fi
3가지의 if문이 있으며 -d 조건식은 해당 디렉토리가 존재하는지 확인하며 -f 조건식은 파일이 존재하고 정규파일일 경우를 확인합니다. 첫번째 if문은 해당 디렉토리가 있기에 참이며 두번쨰 if문은 해당 디렉토리 경로에 test.sh 파일이 있기에 참이며 세번쨰 if문은 gsk.sh파일이 없기에 거짓입니다. 파일비교 조건식은 아래와 같습니다.
| 파일 비교 조건식 | 설명 |
| -d file | 디렉토리가 존재 하는지 |
| -f file | 파일이 존재하며 정규파일인지 |
| -e file | 파일이 존재하는지 |
| -s file | 파일이 크기가 0보다 큰지 |
| -L file | 파일이 심볼릭 파일인지 |
| -x file | 파일을 실행할수있는지 |
| -O file | 파일의 소유자가 현재사용자인지 |
| -G file | 파일의 그룹이 현재 사용자의 그룹인지 |
| file1 -nt file2 | file1이 file2 보다 최신의 파일인지 |
| file1 -ot file2 | file1이 file2 보다 오래된 파일인지 |
'프로그래밍 > Shell Script' 카테고리의 다른 글
| 쉘 스크립트 for문 (0) | 2020.11.03 |
|---|---|
| 쉘 스크립트 if문 3 (0) | 2020.10.19 |
| 쉘 스크립트 if문 2 (0) | 2020.10.17 |
| 쉘 스크립트 기초 2 (0) | 2020.10.07 |
| 쉘 스크립트 기초 1 (0) | 2020.10.06 |