shell 조건식
OS/리눅스 & 유닉스 2011. 9. 14. 08:58조건식
if, while, until 구문에서는 조건식이 사용된다. 조건식은 참과 거짓의 결과를 내는 구문이다. 참일 경우 조건식은 0을 반환하고, 거짓일 경우에는 1을 반환한다. 조건식의 형식은 다음과 같다.
test 식
[ 식 ]
:
식은 파일식, 문자열식, 수식의 세 종류로 크게 나눌 수 있다. :는 항상 참임을 나타낸다. while, until에서 무한 루프를 만들기 위해 사용된다.
파일식은 어떤 파일의 속성을 검사하는 것으로 다음과 같은 종류가 있다.
-b 파일 : 파일이 블럭 장치 파일이면 참
-c 파일 : 파일이 문자 장치 파일이면 참
-d 파일 : 파일이 디렉토리이면 참
-e 파일 : 파일이 존재하면 참
-f 파일 : 파일이 정규 파일이면 참
-L 파일 : 파일이 심볼릭 링크이면 참
-p 파일 : 파일이 네임드(named) 파이프이면 참
-S 파일 : 파일이 소켓이면 참
-r 파일 : 파일이 읽기 가능이면 참
-s 파일 : 파일의 크기가 0보다 크면 참
-w 파일 : 파일이 쓰기 가능이면 참
-x 파일 : 파일이 실행 가능이면 참
파일1 -nt 파일2 : 파일1이 파일2보다 새로운 파일이면 참
파일1 -ot 파일2 : 파일1이 파일2보다 오래된 파일이면 참
파일1 -ef 파일2 : 파일1과 파일2가 같은 파일이면 참
문자열식은 문자열에 대한 비교를 한다.
-z 문자열 : 문자열의 길이가 0이면 참
-n 문자열 : 문자일의 길이가 0이 아니면 참
문자열1 = 문자열2 : 문자열1과 문자열2가 같으면 참
문자열1 != 문자열2 : 문자열1과 문자열2가 다르면 참
수식은 숫자값을 비교한다. 양의 정수, 음의 정수, 0, 변수값이 올 수 있다.
값1 -eq 값2 : 값1 = 값2
값1 -ne 값2 : 값1 != 값2
값1 -lt 값2 : 값1 < 값2
값1 -le 값2 : 값1 <= 값2
값1 -gt 값2 : 값1 > 값2
값1 -ge 값2 : 값1 >= 값2
이외에도 다음과 같이 식 전체에 대한 연산이 가능하다.
! 식 : 식에 대한 부정(not)
식1 -a 식2 : 식1과 식2에 대한 논리곱(and)
식1 -o 식2 : 식1과 식2에 대한 논리합(or)
'OS > 리눅스 & 유닉스' 카테고리의 다른 글
유닉스(리눅스) 시그널 종류 (0) | 2011.11.08 |
---|---|
vim 메뉴얼 (0) | 2011.11.02 |
Bash를 이용한 쉘 스크립팅 (0) | 2011.09.08 |
2>&1 (0) | 2011.09.08 |
awk (0) | 2011.09.08 |