Commande de test du shell


La commande test dans Shell est utilisée pour vérifier si une certaine condition est vraie. Elle peut tester des valeurs, des caractères et des fichiers.


Test numérique

参数 说明
-eq 等于则为真
-ne 不等于则为真
-gt 大于则为真
-ge 大于等于则为真
-lt 小于则为真
-le 小于等于则为真

Exemple de démonstration :

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

Résultat de sortie :

两个数相等!

Test de chaîne

参数 说明
= 等于则为真
!= 不相等则为真
-z 字符串 字符串的长度为零则为真
-n 字符串 字符串的长度不为零则为真

Démonstration d'instance :

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

Résultat de sortie :

两个字符串相等!

Test de fichier

参数 说明
-e 文件名 如果文件存在则为真
-r 文件名 如果文件存在且可读则为真
-w 文件名 如果文件存在且可写则为真
-x 文件名 如果文件存在且可执行则为真
-s 文件名 如果文件存在且至少有一个字符则为真
-d 文件名 如果文件存在且为目录则为真
-f 文件名 如果文件存在且为普通文件则为真
-c 文件名 如果文件存在且为字符型特殊文件则为真
-b 文件名 如果文件存在且为块特殊文件则为真

Démonstration d'instance :

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

Résultat de sortie :

文件已存在!

De plus, Shell fournit également trois opérateurs logiques AND (-a), OR (-o) et NOT (!) pour connecter les conditions de test, et leur priorité est : " !" , "-a" est le deuxième et "-o" est le plus bas. Par exemple :

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

Résultat de sortie :

有一个文件存在!