
if 문
쉘 스크립트에서도 프로그래밍에서 일반적으로 사용하는 if문을 사용할 수 있다. 문법은 아래와 같다.
if [ 조건식 ]
then
수행문
elif [ 조건식 ]
then
수행문
else
수행문
fi
시작은 if로, 그 끝은 fi로 표기한다.
조건은 대괄호 안에 넣으며, 대괄호와 조건식 사이에는 한 칸의 공백을 두어야 한다.
elif 나 else는 필요에 따라 작성하면 된다.
1) if [ $변수 연산자 $변수 ]
가장 일반적인 형태로, 변수끼리 비교해서 결괏값에 따라 분기를 준다.
#!/bin/bash
val1 = 10
val2 = 20
if [ $val1 = $val2 ] # 비교시에 '==' 가 아니라 '=' 임을 유의하자.
then
echo True
else
echo False
fi
2) if [ $변수 연산자 조건값 ]
앞에 변수가 들어가고, 조건값에 따라 분기를 나눈다.
#!/bin/bash
val = "Korea"
if [ $val = "America" ]
then
echo True
else
echo False
fi
3) if [ 연산자 $변수 ]
2번과는 반대로 앞에 연산자가 들어가고 뒤에 변수가 들어간다. 연산자는 주로 리눅스 명령어를 많이 사용하는 거 같다.
#!/bin/bash
val=""
if [ -z $val ] # -z는 변수에 저장된 값의 길이가 0이면 True를 return 한다.
then
echo True
else
echo False
fi
4) if [ 조건식 ] 연산자[ 조건식 ]
위 식은 AND 나 OR과 같은 논리 연산자로 여러개의 조건식을 합쳐 조건을 만들고 싶을때 사용된다.
#!/bin/bash
val=5
if [ $val -gt 0 ] && [ $val -lt 10 ] # -gt는 더 큰지 검사, -lt는 더 작은지 검사하는 명령어이다.
then
echo True
else
echo False
fi
switch-case 문
if문의 분기가 많아지면 switch를 쓰기도 하는데 쉘 스크립트에서도 이를 지원한다. 기본 문법과 예제는 아래와 같다.
case $변수 in
조건값)
수행문
;;
조건값)
수행문
;;
*) # *) default를 의미한다. 조건에 맞는 값이 없을때 이쪽으로 빠진다.
수행문
esac
#!/bin/bash
case $1 in
start)
echo "this is start"
;;
stop)
echo "this is stop"
;;
restart)
echo "this is restart"
;;
*)
echo "nothing"
esac
# 위 내용은 "처음배우는 쉘 스크립트" 를 공부하고 정리한 내용입니다.
'쉘 스크립트' 카테고리의 다른 글
[쉘 스크립트] for / while 문 (0) | 2023.10.09 |
---|---|
[쉘 스크립트] 변수와 함수 기초 문법 (0) | 2023.10.08 |
[쉘 스크립트] Syntax error: "(" unexpected 에러 (0) | 2023.10.08 |