728x90
반응형
Bash shell - if문
#!/bin/bash
if [ 조건식 ] # 조건식에는 아래 비교 연산자를 활용
then
명령어
elif [ 조건식 ]
then
명령어
else
명령어
fi
# 아래처럼 줄여서 사용도 가능하다.
if [ 조건식 ]; then
명령어
elif [ 조건식 ]; then
명령어
else
명령어
fi
# 이중 괄호로 조건식을 묶으면 산술 연산자(>,< 등)를 사용할 수 있다.
if (( 조건식 )); then
명령어
elif (( 조건식 )); then
명령어
else
명령어
fi
조건문
산술연산자
-eq : 두 수가 같음(equal)
if [ "$a" -eq "$b" ]
-ne : 두 수가 같지 않음(not equal)
if [ "$a" -ne "$b" ]
-gt : 왼쪽이 오른쪽보다 더 큼(greater than)
if ["$a" -gt "$b" ]
-ge : 왼쪽이 오른쪽보다 더 크거나 같음(greater than or equal)
if [ "$a" -ge "$b" ]
-lt : 왼쪽이 오른쪽보다 더 작음(less than)
if [ "$a" -lt "$b" ]
-le : 왼쪽이 오른쪽보다 더 작거나 같음(less than or equal)
if [ "$a" -le "$b" ]
[ 부등호는 이중 소활호 (()) 에서 사용할 수 있다. ]
< : 왼쪽이 오른쪽보다 더 작음
if (( "$a" < "$b" ))
<= : 왼쪽이 오른쪽보다 더 작거나 같음
if (( "$a" <= "$b" ))
> : 왼쪽이 오른쪽보다 더 큼
if (( "$a" > "$b" ))
>= : 왼쪽이 오른쪽보다 더 크거나 같음
if (( "$a" >= "$b" ))
문자열 비교 연산자
= : 두 문자열이 같음
if [ "$a" = "$b" ]
== : 두 문자열이 같음 ('=' 와 같은 동작)
if [ "$a" == "$b" ]
[[ $a == z* ]] # $a 가 "z"로 시작하면 참(패턴 매칭)
[[ $a == "z*" ]] # $a 가 z* 와 같다면 참
[ $a == z* ] # 파일 globbing이나 낱말 조각남이 일어남
[ "$a" == "z*" ] # $a 가 z* 와 같다면 참
!= : 두 문자열이 같지 않음
if [ "$a" != "$b" ]
[ 부등호는 이중 대괄호 [[]] 에서 이스케이프 없이 사용할 수 있다. ]
< : 왼쪽이 오른쪽보다 아스키 알파벳 순서에서 더 작음
if [[ "$a" < "$b" ]] 또는,
if [ "$a" \< "$b" ]
'<' 를 [ ] 에서 쓰려면 이스케이프 시켜야 한다.
> : 왼쪽이 오른쪽보다 아스키 알파벳 순서에서 더 큼
if [[ "$a" > "$b" ]]
if [ "$a" \> "$b" ]
'>' 를 [ ] 에서 쓰려면 이스케이프 시켜야 한다.
-z : 문자열이 "null"임. 즉, 길이가 0
-n : 문자열이 "null"이 아님.
논리 연산자
-a : 논리 and
if [ "$exp1" -a "$exp2" ] 는 exp1 과 exp2 모두 참일 경우에만 참을 리턴합니다.
[[ condition1 && condition2 ]] 와 비슷하다.
-o : 논리 or
if [ "$exp1" -o "$exp2" 는 exp1 이나 exp2 중 하나라도 참일 경우에 참을 리턴합니다.
[[ condition1 || condition2 ]] 와 비슷하다.
Reference
반응형
'[OS]Operating System > [Linux]' 카테고리의 다른 글
[Linux] 파일 이동 및 이름 바꾸기 (3) | 2024.03.05 |
---|---|
[Linux] retry logic in script (0) | 2023.06.13 |
[Linux] shell code - [], [[]], (), (()) 차이 (0) | 2023.04.30 |
[Linux] shell script - python exit code (0) | 2023.04.30 |
[Linux] $?의 의미 (0) | 2023.04.30 |