운영체제 이야기/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의 하드링크 파일이면 참 

    반응형

    댓글