이전 글에서 쉘 스크립트로 사용자 입력을 받는 방법과 출력하는 방법에 대해서 다뤄보았다. 그렇다면 사용자의 입력에 따라 출력을 다르게 하고 싶을 때는 어떻게 해야할까? bash 쉘 스크립트에서는 다른 언어들과 마찬가지로 조건문에서는 if문을 제공한다. 그렇다면 if 조건문 문법에 대해서 살펴보자.
기본 구조
1
2
3
4
5
6
7
8
|
if [ expression ] ; then
명령어
elif [ expression ] ; then
명령어
else
명령어
fi
|
cs |
bash 쉘 스크립트의 조건문 구조는 위와 같다.
주의할 점은 조건과 '[' ']' 사이에는 공백이 있어야 한다.
그렇다면 조건은 어떻게 넣을 수 있을까?
bash 쉘 스크립트에서 expression에 사용할 수 있는 비교 방법은 아래와 같다.
산술 비교
산술 비교는 두 변수의 크기를 비교하는 연산자다.
산술 비교 연산자 |
설명 |
var1 -eq var2 |
var1과 var2가 같은 경우 true를 반환함 |
var1 -ne var2 |
var1과 var2가 다른 경우 true를 반환함 |
var1 -gt var2 |
var1이 var2보다 큰 경우 true를 반환함 |
var1 -lt var2 |
var1이 var2보다 작은 경우 true를 반환함 |
var1 -ge var2 |
var1이 var2보다 크거나 같은 경우 true를 반환함 |
var1 -lt var2 |
var1이 var2보다 작거나 같은 경우 true를 반환함 |
산술 비교 연산자 예제
1
2
3
4
5
6
7
8
9
10
11
|
#!/bin/bash
age=34
if [ $age -eq 31 ] ; then
echo "Your age is ${age}"
elif [ $age -gt 31 ] ; then
echo "Your age is greater than 31"
else
echo "Your age is less than 31"
fi
|
cs |
age의 변수값과 31을 비교하는 예제다.
age값이 31보다 크므로 해당 조건을 만족하는 $age -gt 31 부분이 참이 되면서
Your age is greater than 31 을 출력한다.
문자열 비교
문자열 비교는 두 변수의 문자열을 비교하는 연산자다.
산술 비교 연산자 |
설명 |
var1 = var2 |
문자열 var1과 var2가 같은 경우 true를 반환함 |
var1 != var2 |
문자열 var1과 var2가 다른 경우 true를 반환함 |
-z var1 |
문자열 var1 길이가 0인 경우 true |
-n var1 |
문자열 var1 길이가 0이 아닌 경우 true |
var1 |
문자열 var1이 NULL이 아닌 경우 true를 반환함 |
문자열 비교 연산자 예제
1
2
3
4
5
6
7
8
9
|
#!/bin/bash
name="kevin"
if [ $name = "james" ] ; then
echo "Your name is james"
else
echo "Your name is not james"
fi
|
cs |
name 변수와 "james" 문자열을 비교하는 예제다.
두 값이 다르므로 "Your name is not james"가 출력된다.
'Linux' 카테고리의 다른 글
[bash] 리눅스 쉘 스크립트에서 sleep 함수 사용법 (0) | 2021.03.28 |
---|---|
[linux] 환경변수 설정, 확인 및 해제 명령어 (0) | 2021.03.20 |
[bash] 쉘 스크립트로 사용자 입력 받기 (read 명령어 사용법) (0) | 2021.03.16 |
[bash] 쉘스크립트로 출력하기 (echo, printf 명령어) (0) | 2021.03.14 |
[Linux] 사용자 쉘 바꾸는 명령어 (chsh) (0) | 2021.03.07 |