쉘 스크립트에서 연산자는 크게 다음과 같이 분류할 수 있다.
정수 계산을 수행할 때 사용한다. expr, (( )), [ ], let 등을 활용할 수 있다.
| 연산자 | 설명 |
|---|---|
+ | 덧셈 |
- | 뺄셈 |
* | 곱셈 |
/ | 나눗셈 (정수 나눗셈) |
% | 나머지 연산 |
참고
expr을 사용할 수도 있지만,$(( ))또는let을 사용하는 것이 더 간편하다.a=5 b=3 echo %(expr $a + $b) # 8 echo $((a + b)) # 8 let result=a*b echo $result # 15
숫자와 문자열 비교에 사용된다. test 명령어([ ]) 또는 [[ ]]를 사용할 수 있다.
| 연산자 | 설명 |
|---|---|
-eq | 같음 |
-ne | 다름 |
-gt | 초과 (>) |
lt | 미만 (<) |
-ge | 이상 (>=) |
-le | 이하 (<=) |
| 연산자 | 설명 |
|---|---|
= | 문자열이 같음 |
!= | 문자열이 다름 |
< | 문자열이 사전순으로 앞섬 |
> | 문자열이 사전순으로 뒤섬 |
-z | 문자열이 비어 있음 |
-n | 문자열이 비어 있지 않음 |
참고:
[ ]내부에서<,>를 사용할 때는 반드시\를 붙여야 한다.
파일의 존재 여부 및 속성을 검사하는데 사용된다.
연산자|설명
-e|파일 또는 디렉터리가 존재하는지 확인
-f|일반 파일인지 확인
-d|디렉터리인지 확인
-s|파일 크기가 0보다 큰지 확인
-r|읽기 권한이 있는지 확인
-w|쓰기 권한이 있는지 확인
-x|실행 권한이 있는지 확인
논리적인 조건을 결합하는 데 사용된다.
| 연산자 | 설명 |
|---|---|
&& | AND (둘 다 참이어야 참) |
¦¦ | OR (둘 중 하나만 참이어도 참) |
! | NOT (부정) |
쉘 스크립트에서 조건문은 특정 조건을 평가하고 그에 따라 코드의 흐름을 결정하는 데 사용된다.
기본적인 조건문 구조이다.
if [ 조건 ]; then
실행할 명령어
elif [ 조건 ]; then
실행할 명령어
else
실행할 명령어
fi
num=10
if [ "$num" -gt 5 ]; then
echo "num은 5보다 큽니다."
elif [ "$num" -eq 5 ]; then
echo "num은 5입니다."
else
echo "num은 5보다 작습니다."
fi
여러 경우를 처리할 때 유용하다.
case "$변수" in
값1)
실행할 명령어 ;;
값2)
실행할 명령어 ;;
*)
기본적으로 실행할 명령어 ;;
esac
read -p "원하는 색을 입력하세요: " colour
case "$colour" in
red) echo "빨강" ;;
blue) echo "파랑" ;;
green) echo "초록" ;;
*) echo "알 수 없는 색입니다." ;;
esac
Bash에는 삼항 연산자(? :)가 없지만, &&와 ||를 사용하여 간단한 조건을 표현할 수 있다.
[ "$a" -gt 10 ] && echo "a는 10보다 큽니다." || echo "a는 10 이하입니다."
+, -, *, /, %)-eq, -ne, -gt, -lt, -ge, -le)=, !=, -z, -n)-e, -f, -d, -r, -w, -x)&&, ||, !)if, elif, elsecase&& 및 || 활용)