Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
Tags
- SRE
- MySQL
- 오블완
- Spring
- go
- golang
- minikube
- 공부
- AWS EKS
- kotlin coroutine
- Java
- Pinpoint
- 코틀린 코루틴의 정석
- AI
- CKA
- 정보처리기사 실기 기출문제
- 기록으로 실력을 쌓자
- 티스토리챌린지
- APM
- Linux
- CloudWatch
- 컨텍스트 엔지니어링
- tucker의 go 언어 프로그래밍
- Kubernetes
- PETERICA
- kotlin
- aws
- kotlin querydsl
- 바이브코딩
- CKA 기출문제
Archives
- Today
- Total
피터의 개발이야기
[linux] if 문, 비교연산자, 산술연산자, 파일비교 본문
반응형

if문 기본 문법
if [ 조건 ]
then
조건이 참일 경우 실행
elif [ 조건 ]
then
조건이 참일 경우 실행
else
조건이 거짓일 경우 실행
fi
비교연산자
#!/bin/bash
echo "비교연산자: 같으면"
if [ "조건"="조건" ]
then echo "참"
else echo "거짓"
fi
echo "비교연산자: 다르면"
if [ "조건"!="조건" ]
then echo "참"
else echo "거짓"
fi
echo "비교연산자: 널이 아니면"
if [ -n "" ]
then echo "참"
else echo "거짓"
fi
echo "비교연산자: 널이면"
if [ -z "" ]
then echo "참"
else echo "거짓"
fi
조건들은 문자열이어야 한다.
산술연산자
#!/bin/bash
echo "산술연산자: 같으면"
if [ 100 -eq 100 ]
then echo "참"
else echo "거짓"
fi
echo "산술연산자: 다르면"
if [ 200 -ne 100 ]
then echo "참"
else echo "거짓"
fi
echo "산술연산자: 값1 > 값2"
if [ 200 -gt 100 ]
then echo "참"
else echo "거짓"
fi
echo "산술연산자: 값1 >= 값2"
if [ 200 -ge 100 ]
then echo "참"
else echo "거짓"
fi
echo "산술연산자: 값1 < 값2"
if [ 200 -lt 100 ]
then echo "참"
else echo "거짓"
fi
echo "산술연산자: 값1 <= 값2"
if [ 200 -le 100 ]
then echo "참"
else echo "거짓"
fi
파일 비교
| 문자 | 설명 |
| -e | 파일이 존재 |
| -f |
파일이 존재하고 일반 파일인 경우(디렉토리 혹은 장치파일이 아닌 경우)
|
| -s |
파일이 존재하고 0보다 큰 경우
|
| -d |
파일이 존재하고 디렉토리인 경우
|
| -b |
파일이 존재하고 블록장치 파일인 경우
|
| -c |
파일이 존재하고 캐릭터 장치 파일인 경우
|
| -p |
파일이 존재하고 FIFO인 경우
|
| -h |
파일이 존재하고 한 개 이상의 심볼릭 링크가 설정된 경우
|
| -L |
파일이 존재하고 한 개 이상의 심볼릭 링크가 설정된 경우
|
| -S |
파일이 소켓 디바이스인 경우
|
| -t |
파일이 디스크립터가 터미널 디바이스와 연관이 있음
|
| -r |
파일이 존재하고 읽기 가능한 경우
|
| -w |
파일이 존재하고 쓰기가 가능한 경우
|
| -x |
파일이 존재하고 실행 가능한 경우
|
| -g |
파일이 존재하고 SetGID가 설정된 경우
|
| -u |
파일이 존재하고 SetUID가 설정된 경우
|
| -k |
파일이 존재하고 스티키 비트(Sticky bit)가 설정된 경우
|
| -O | 자신이 소유자임 |
| -G |
그룹 아이디가 자신과 같음
|
| -N |
마지막으로 읽힌 후에 변경 됐음
|
| file1 -nt file2 |
file1 파일이 file2 파일보다 최신임
|
| file1 -ot file2 |
file1 파일이 file2 파일보다 예전것임
|
| file1 -ef file2 |
file1 파일과 file2 파일이 같은 파일을 하드 링크하고 있음
|
| ! |
조건이 안 맞으면 참(예: ! -e file)
|
#!/bin/bash
# 값을 대입할 경우 = 앞뒤 공백이 없어야 한다.
dname=/Users/peterseo/study/gitStudy/linux
if [ -d $dname ]
then echo "디렉토리입니다."
else echo "디렉토리 아니에요."
fi
fname=/Users/peterseo/study/gitStudy/linux/ifStudy.sh
if [ -f $fname ]
then echo "파일입니다."
else echo "파일 아니에요."
fi
if [ -e $fname ]
then echo "파일이 있으면 참"
else echo "파일이 있으면 거짓"
fi
if [ -r $fname ]
then echo "파일이 읽기 가능하면 참"
else echo "파일이 읽기 가능하면 거짓"
fi
if [ -s $fname ]
then echo "파일의 크기가 0이 아니면 참"
else echo "파일의 크기가 0이 아니면 거짓"
fi
if [ -u $fname ]
then echo "파일이 user-id가 설정되면 참"
else echo "파일이 user-id가 설정되면 거짓"
fi
if [ -w $fname ]
then echo "파일이 쓰기 가능하면 참"
else echo "파일이 쓰기 가능하면 거짓"
fi
if [ -x $fname ]
then echo "파일이 실행 가능 상태이면 참"
else echo "파일이 실행 가능 상태이면 거짓"
fi
fname2=/Users/peterseo/study/gitStudy/linux/ifStudy2.sh
if [ $fname -nt $fname2 ]
then echo "파일이 파일2보다 최신이면 참"
else echo "파일이 파일2보다 최신이면 거짓"
fi
if [ $fname -ot $fname2 ]
then echo "파일이 파일2보다 이전이면 참"
else echo "파일이 파일2보다 이전이면 거짓"
fi
if [ $fname -ef $fname2 ]
then echo "파일이 파일2과 같으면 참"
else echo "파일이 파일2과 같으면 거짓"
fi
소스는 여기에 있어요.
ㅁ 함께 보면 좋은 사이트
반응형
'Linux > Shell Script' 카테고리의 다른 글
| [shell] log 파일 압축하고 6개월지난 파일 지우기 (0) | 2022.05.14 |
|---|---|
| [Shell] 배열 loop (0) | 2021.01.27 |
| [shell] Spring BlueGreen 배포를 위한 Shell Script(with nginx) (0) | 2021.01.17 |
| [shell] shell 변수 (0) | 2021.01.07 |
| [linux] case문 (0) | 2021.01.06 |
Comments