운영체제 이야기/Linux(CentOS)

[CentOS7] sh 쉘 if 문 옵션

한희성 2021. 4. 21.
반응형

출처 : lxstitch.tistory.com/65

 

쉘 스크립트 if문 옵션

쉘 스크립트 if문 옵션 및 사용 법 -b 파일 : 파일이 블럭 장치 파일이면 참 -c 파일 : 파일이 문자 장치 파일이면 참 -d 파일 : 파일이 디렉토리이면 참 -e 파일 : 파일이 존재하면 참 -f 파일 : 파일이

lxstitch.tistory.com

-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가 다르면 참

-h filename
               True if filename exists and is a  symbolic  link.
               With  all  other primitives (except -L filename),
               the symbolic links are followed by default.

 

 

문자열 비교 
[ string ] - string이 빈 문자열이 아니라면 참 
[ string1 = string2 ] - 두 문자열이 같다면 참 
[ string1 != string2 ] - 두 문자열이 다르면 참 
[ -n string ] - 문자열이 null(빈 문자열) 이 아니라면 참 
[ -z string ] - 문자열이 null(빈 문자열) 이라면 참

 

산술 비교 
`[ expr1 -eq expr2 ]` - 두 표현식 값이 같다면 참 ('EQual') 
`[ expr1 -ne expr2 ]` - 두 표현식 갑이 같지 않다면 참 ('Not Equal') 
[ expr1 -gt expr2 ] - `expr1 > expr2` 이면 참 ('Greater Then') 
[ expr1 -ge expr2 ] - `expr1 >= expr2` 이면 참 ('Greater Equal') 
[ expr1 -lt expr2 ] - `expr1 < expr2` 이면 참 ('Less Then') 
[ expr1 -le expr2 ] - `expr1 <= expr2` 이면 참 ('Less Equal') 
[ ! expr ] - expr 이 참이면 거짓, 거짓이면 참 
[ expr1 -a expr2 ] - expr1 AND expr2 의 결과 (둘다 참이면 참, 'And') 
[ expr1 -o expr2 ] - expr1 OR expr2 의 결과 (둘중 하나만 참이면 참, 'Or')

 

파일 조건 
[ -b FILE ] - FILE 이 블럭 디바이스 이면 참 
[ -c FILE ] - FILE 이 문자 디바이스 이면 참. 
[ -d FILE ] - FILE 이 디렉토리이면 참 
[ -e FILE ] - FILE 이 존재하면 참 
[ -f FILE ] - FILE 이 존재하고 정규파일이면 참 
[ -g FILE ] - FILE 이 set-group-id 파일이면 참 
[ -h FILE ] - FILE 이 심볼릭 링크이면 참 
[ -L FILE ] - FILE 이 심볼릭 링크이면 참 
[ -k FILE ] - FILE 이 Sticky bit 가 셋팅되어 있으면 참 
[ -p FILE ] - True if file is a named pipe. 
[ -r FILE ] - 현재 사용자가 읽을 수 있는 파일이면 참 
[ -s FILE ] - 파일이 비어있지 않으면 참 
[ -S FILE ] - 소켓 디바이스이면 참 
[ -t FD ] - FD 가 열려진 터미널이면 참 
[ -u FILE ] - FILE 이 set-user-id 파일이면 참 
[ -w FILE ] - 현재 사용자가 쓸 수 있는 파일(writable file) 이면 참 
[ -x FILE ] - 현재사용자가 실행할 수 있는 파일(Executable file) 이면 참 
[ -O FILE ] - FILE 의 소유자가 현재 사용자이면 참 
[ -G FILE ] - FILE 의 그룹이 현재 사용자의 그룹과 같으면 참 
[ FILE1 -nt F - : FILE1이 FILE2 보다 새로운 파일이면 ( 최근파일이면 ) 참 
[ FILE1 -ot F - : FILE1이 FILE2 보다 오래된 파일이면 참 
[ FILE1 -ef F - : FILE1 이 FILE2의 하드링크 파일이면 참 

반응형

댓글

💲 추천 글