test 명령 조건
참이면 0
거짓이면1로나옴
확인 echo $?
문자열 비교
[ 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 Than')
[ expr1 -ge expr2 ] - expr1 >= expr2 이면 참 ('Greater Equal')
[ expr1 -lt expr2 ] - expr1 < expr2 이면 참 ('Less Than')
[ 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 FILE2 ] - : FILE1이 FILE2 보다 새로운 파일이면 ( 최근파일이면 ) 참
[ FILE1 -ot FILE2 ] - : FILE1이 FILE2 보다 오래된 파일이면 참
[ FILE1 -ef FILE2 ] - : FILE1 이 FILE2의 하드링크 파일이면 참
[ -z 문자열 ] - 문자열의 길이가 0 이면 참
[ -n 문자열 ] - 문자열의 길이가 0 아니면 참