본문 바로가기
IT/리눅스 (Linux)

쉘 스크립트(Shell Script) - 연산자[논리,산술,비트,기타, 비교]

by 베베야 2022. 2. 17.
728x90

쉘에서 사용하는 다양한 연산자인 논리,산술,비트,기타,비교 연산자에 대해서 알아보자

논리 연산자(Logical Operators)

문자 설명
&&, -a 논리 AND
||, -o 논리 OR

산술 연산자(Arithmetic Operators)

문자 설명
+ 더하기
- 빼기
* 곱하기
/ 나누기
** 누승(exponentiation), 거듭제곱(power)
% modulo 나 mod (정수 나누기에서 나머지 값)
+= 상수값 만큼 증가(plus-equal)
-= 상수값 만큼 감소(minus-equal)
*= 상수값을 곱함(times-equal)
/= 상수값으로 나눔(slash-equal)
%= 상수값으로 나눈 나머지 값(mod-equal)

비트 연산자(Bitwise Operators)

문자 설명
<< 비트 왼쪽 쉬프트(쉬프트 한 번당 2를 곱하는 것과 동일함)
<<= left-shift-equal
>> 비트 오른쪽 쉬프트(쉬프트 한 번당 2로 나눔)
>>= right-shift-equal(<<=와 반대)
& 비트 and
&= 비트 and-equal
| 비트 OR
|= 비트 OR-equa
~ 비트 negate
! 비트 NOT
^ 비트 XOR
^= 비트 XOR-equa

기타 연산자(Miscellaneous Operators)

문자 설명
, 콤마 연산자(comma operator), 2개 이상의 산술 연산을 묶어줌

 


정수 비교(Integer Comparison)

문자 설명
-eq 같음
-ne 같지 않음
>, -gt 더 큼(> 이중 소괄호에서 사용 가능)
>=, -ge 더크거나 같음(>= 이중 소괄호에서 사용 가능)
<, -lt 더 작음(< 이중 소괄호에서 사용 가능)
<=, -le 더 작거나 같음(<= 이중 소괄호에서 사용 가능)

 

문자열 비교(String Comparison)

문자 설명
=, == 같음
!= 같지 않음
< ASCII 알파벳 순서에 더 작음
> ASCII 알파벳 순서에서 더 큼
-z 문자열이 NULL, 길이가 0인 경우
-n 문자열이 NULL이 아님
${변수} 문자열이 NULL이 아님

 

파일 비교(File test operators)

문자 설명
-e 파일이 존재
-f 파일이 존재하고 일반 파일인 경우(디렉토리 혹은 장치파일이 아닌 경우)
-s 파일이 존재하고 0보다 큰 경우
-d 파일이 존재하고 디렉토리인 경우
-b 파일이 존재하고 블록장치 파일인 경우
-c 파일이 존재하고 캐릭터 장치 파일인 경우
-p 파일이 존재하고 FIFO인 경우
-h 파일이 존재하고 한 개 이상의 심볼릭 링크가 설정된 경우
-L 파일이 존재하고 한 개 이상의 심볼릭 링크가 설정된 경우
-S 파일이 소켓 디바이스인 경우
-t 파일이 디스크립터가 터미널 디바이스와 연관이 있음
-r 파일이 존재하고 읽기 가능한 경우
-w 파일이 존재하고 쓰기가 가능한 경우
-x 파일이 존재하고 실행 가능한 경우
-g 파일이 존재하고 SetGID가 설정된 경우
-u 파일이 존재하고 SetUID가 설정된 경우
-k 파일이 존재하고 스티키 비트(Sticky bit)가 설정된 경우
-O 자신이 소유자임
-G 그룹 아이디가 자신과 같음
-N 마지막으로 읽힌 후에 변경 됐음
file1 -nt file2 file1 파일이 file2 파일보다 최신임
file1 -ot file2 file1 파일이 file2 파일보다 예전것임
file1 -ef file2 file1 파일과 file2 파일이 같은 파일을 하드 링크하고 있음
! 조건이 안 맞으면 참(예: ! -e file)

 

반응형
그리드형

댓글