본문 바로가기

Linux

Shell Script 연산자 정리

Shell Script도 일반 프로그래밍 언어와 마찬가지로 다양한 연산자를 지원합니다.

주로 사용하는 연사자는 아래와 같이 구분할 수 있습니다.

  • Arithmetic Operators
  • Relational Operators
  • Boolean Operators
  • File Test Operators

 

산술 연산자(Arithmetic Operators)

일반적인 산술 연산과 동일하지만 사용법은 조금 다릅니다.

연산자 설명
+ 두 값을 더한다.
- 왼쪽값에서 오른쪽 값을 뺀다.
* 두 값을 곱한다.
/ 나누기
% 나머지(모듈러)

<예시>

bash는 기본적으로 산술 연산자를 바로 사용할 수 없습니다. 산술 연산을 위해서는 아래의 예와 같이 expr을 사용하거나 변수 처리가 필요합니다.

#!/bin/bash

x=10
y=20
z=`expr $x + $y`
w=$((x+y))
echo "z: $z"
echo "w: $w"

실행 결과

z는 expr을 사용한 결과이고 w는 변수 처리한 경우입니다.

z: 30
w: 30

 

비교 연산자(Relational Operators)

아래 연산자는 숫자 값의 경우에 사용합니다.

연산자 설명
-eq 두 값이 같으면 true, 다르면 false
-ne 두 값이 같으면 false, 다르면 true
-gt 값이 초과하면 true
-lt 값이 미만이면 true
-ge 값이 이상이면 true
-le 값이 이하이면 true
== 값이 같으면 true

문자열인 경우에는 아래의 연산자를 사용합니다.

연산자 설명
= 같으면 true
!= 다르면 true
-z length가 zero이면 true, 즉 null인 경우
-n lenght가 0이 아니면 true

 

논리 연산자(Boolean Operators)

true, false에 관한 연산자입니다.

연산자 설명
-a && 로 둘다 true면 true
-o || 로 둘중 하나만 true면 true
! true, false의 반대값

 

File 연산자

file 관련 연산자 중 자주 사용하는 연산자들입니다.

shell script를 작성할 때 파일을 다루는 경우가 많기 때문에 잘 알아둘 필요가 있습니다.

연산자 설명
-e file이 존재하면 true 
-d  directory면 true
-s file sizer가 0보다 크면 true

 

 

'Linux' 카테고리의 다른 글

Shell Script: if 조건문  (0) 2021.03.03
scponly 설정하기  (0) 2021.02.25
PC에서 VirtualBox Ubuntu와 통신하기  (0) 2021.02.09
VirtualBox Ubuntu 20.04 해상도 설정  (0) 2021.02.07
Shell Script - 변수  (0) 2021.02.06