RECENT POSTS

최근에 작성한 글

01 / 03

전체 글

전체 보기

[Linux] Bash: 조건문과 테스트 연산자(2)

2. 조건문과 테스트 연산자

4. 문자열 테스트 연산자

싱글 브래킷 표현식에 들어가는 연산자

연산자 설명
= 또는 = 두 문자열이 같으면 참
≠ 두 문자열이 다르면 참
> 또는 < 두 문자열을 사전식으로 비교(ASCII 값 비교)
-n 문자열의 길이가 0이 아니면 참
-z 문자열 길이가 0이면 참
문자열에 값이 설정돼 있지 않거나 빈 문자열인 경우 문자열의 길이를 0으로 판단

📌 >,< 연산자 사용 시 백슬래시를 붙여야 제대로 동작

5. 산술 테스트 연산자

연산자 설명
-eq Equal 의 약자, 연산자 좌우의 값이 같으면 참을 반환
-ne Not equal 의 약자, 연산자 좌우 값이 다르면 참을 반환
-le Less then or equal의 약자, 연산자 좌측값이 우측값보다 작거나 같으면 참 반환
-lt Less then의 약자, 연산자 좌측 값이 우측 값보다 작으면 참 반환
-gt Greater then의 약자, 연산자 좌측 값이 우측 값보다 크면 참 반환
-ge Greater then or equal의 약자, 연산자 좌측 값이 우측 값보다 크거나 같으면 참 반환

6. 파일 테스트 연산자

파일의 유무나 특성 등을 판단

연산자 설명
-e 파일이 존재하면 참
-f 파일이 일반 파일이면 참
-d 파일이 디렉터리면 참
-s 파일이 비어있지 않으면 참
-L 파일이 심볼릭 링크면 참
-r 파일에 읽기 권한이 있으면 참
-w 파일에 쓰기 권한이 있으면 참
-x 파일에 실행 권한이 있으면 참

7. 논리 테스트 연산자

1. 논리곱 연산

두 조건이 참인 경우에만 결과도 참

2. 논리합 연산

두 조건 중 한 조건만 참이어도 결과가 참

3. 부정 연산

조건의 결과를 반대로

#!/bin/bash

COURSE = "Korean"
SCORE = "99"

if [ "$COURSE" == "Korean" ]; then
	if [ "$SCORE" -ge 95 ]; then
		RESULT="pass"
	fi
elif [ "$COURSE" == "English"]; then
	if [ "$SCORE" -ge 85 ]; then
		RESULT="pass"
	fi
fi

if[ !"$RESULT" == "pass" ]; then
	RESULT="fail"
fi
echo "Result is $RESULT"

8. Case 문

주어진 겂이나 표현식을 여러 패턴 중 하나와 비교해 일치하는 패턴에 따라 명령을 실행

case 표현식 in
	패턴1)
		명령1
		;;
	패턴2)
		명령2
		;;
	...
	*)
		기본 명령
		;;
	esac