쉘 테스트 명령


셸의 테스트 명령은 특정 조건이 참인지 확인하는 데 사용되며 값, 문자 및 파일을 테스트할 수 있습니다.


수치 테스트

매개변수 설명
-eq 같다면 참입니다
-네 같지 않으면 참
-gt 그보다 크면 true
-ge
보다 크거나 같으면 true입니다. -lt
보다 작으면 true입니다. -르 작거나 같으면 true

예시 시연:

num1=100
num2=100
if test $[num1] -eq $[num2]
then
    echo '两个数相等!'
else
    echo '两个数不相等!'
fi

출력 결과:

两个数相等!

문자열 테스트

매개변수 설명
= 같다면 참입니다
!= 같지 않으면 참
-z 문자열 문자열의 길이가 0이면 참
-n 문자열 문자열의 길이가 0이 아니면 참입니다

예시 시연:

num1="php"
num2="php"
if test num1=num2
then
    echo '两个字符串相等!'
else
    echo '两个字符串不相等!'
fi

출력 결과:

两个字符串相等!

파일 테스트

매개변수 설명
-e 파일 이름 파일이 존재하면 참
-r 파일 이름 파일이 존재하고 읽을 수 있으면 참입니다
-w 파일 이름 파일이 존재하고 쓰기 가능하면 참입니다
-x 파일 이름 파일이 존재하고 실행 가능하면 참입니다
-s 파일 이름 파일이 존재하고 문자가 하나 이상 있으면 참입니다.
-d 파일 이름 파일이 존재하고 디렉토리이면 True
-f 파일 이름 파일이 존재하고 일반 파일이면 True
-c 파일 이름 해당 파일이 존재하고 문자 특수 파일이면 True
-b 파일 이름 파일이 존재하고 블록 특수 파일인 경우 참입니다

예시 데모:

cd /bin
if test -e ./bash
then
    echo '文件已存在!'
else
    echo '文件不存在!'
fi

출력 결과:

文件已存在!

또한 셸은 (!)가 아닌 (-a) 또는 (-o)도 제공합니다. 테스트 조건을 연결하는 데 세 가지 논리 연산자가 사용되며 우선 순위는 "!"가 가장 높고, "-a"가 두 번째, "-o"가 가장 낮습니다. 예:

cd /bin
if test -e ./notFile -o -e ./bash
then
    echo '有一个文件存在!'
else
    echo '两个文件都不存在'
fi

출력 결과:

有一个文件存在!