- 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 |
- 라즈베리파이
- API
- 쉘 스크립트 if문
- Python
- ACL
- docker
- Java
- Shell script
- 메소드
- 자바
- RaspberryPi
- 그라파나
- Android
- 쉘 스크립트 기초
- GPIO
- 안드로이드
- LEVIATHAN
- 클라우드
- JSP
- Tkinter
- Linux
- centos docker
- 네트워크
- 프로젝트
- synology
- 쉘 스크립트
- nginx
- 리눅스
- GUI
- System
- 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 |