Shell test命令

test命令用于检查某个条件是否成立,它可以进行数值比较、字符比较和文件检测的判断

比较运算请参看运算符一节

数值比较示例:

num1=190  
num2=190  

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

字符串测试示例:

site1="devfz.cn"  
site2="devfz.cnn"  
if test $num1 = $num2  
then  
    echo '两个字符串相等'  
else  
    echo '两个字符串不相等'  
fi
if test -n $site1
then
   echo '$site1长度不为0'
fi

输出结果:

两个字符串相等
devfz.cn长度不为0

文件测试

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

示例:

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  

输出结果:

至少有一个文件存在!


查看Linux命令手册