English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Shell test 命令

La commande test dans Shell est utilisée pour vérifier si une condition est établie, elle peut effectuer des tests de valeur, de caractères et de fichiers.

Test de valeur

参数 说明
-eq Égal, alors c'est vrai
-ne différent, alors c'est vrai
-gt supérieur, alors c'est vrai
-ge supérieur ou égal, alors c'est vrai
-lt inférieur, alors c'est vrai
-le inférieur ou égal, alors c'est vrai
num1=100
num2=100
if test $[num1] -eq $[num2]
then
    echo 'Deux nombres sont égaux !'
else
    echo 'Deux nombres ne sont pas égaux !'
fi

输出结果:

Deux nombres sont égaux !

Les [] dans le code effectuent des opérations arithmétiques de base, telles que :

#!/bin/bash
a=5
b=6
result=$[a+b] # Notez que les espaces ne peuvent pas être laissés autour de l'égalité
echo "result est : $result"

Le résultat est :

result est : 11

Test de chaîne de caractères

参数 说明
= Égal, alors c'est vrai
!== Différents, alors c'est vrai
-Chaîne de caractères z La longueur de la chaîne de caractères est de zéro
-n 字符串 字符串的长度不为零则为真
num1="ru1noob"
num2="w3codebox"
if test $num1 = $num2
then
    echo '两个字符串相等!'
else
    echo '两个字符串不相等!'
fi

输出结果:

两个字符串不相等!

文件测试

参数 说明
-e 文件名 如果文件存在则为真
-r 文件名 如果文件存在且可读则为真
-w 文件名 如果文件存在且可写则为真
-x 文件名 如果文件存在且可执行则为真
-s 文件名 如果文件存在且至少有一个字符则为真
-d 文件名 如果文件存在且为目录则为真
-f 文件名 如果文件存在且为普通文件则为真
-c 文件名 如果文件存在且为字符型特殊文件则为真
-b 文件名 如果文件存在且为块特殊文件则为真
cd /bin
if test -e ./bash
then
    echo '文件已存在!'
else
    echo '文件不存在!'
fi

输出结果:

文件已存在!

另外,Shell 还提供了与( -a )、或( -o )、非( ! )三个逻辑操作符用于将测试条件连接起来,其优先级为: ! 最高, -a 次之, -o 最低。例如:

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

输出结果:

至少有一个文件存在!