Linux Shell编程(三)--条件测试

来源:互联网 发布:seo门户栏目伪静态 编辑:程序博客网 时间:2024/06/05 08:30

Shell的测试命令的语法格式为:
test 表达式
或者
[ 表达式 ] (“[”后以及“]”之前要有空格)

例:test 1 -gt 2测试1是否大于2。test通常与if、while、until等语句一起使用。


表达式有以下类型:

测试文件属性

-b file:如果文件 存在且为块设备(Block special),则值为真;

-c file:如果文件存在且为字符设备(Character special),则值为真;

-r file:如果文件存在且为只读,则值为真;

-w file:如果文件存在且可写入,则值为真;

-x file:如果文件存在且可执行,则值为真;

-s file:如果文件存在且长度大于零,则值为真;

-d file:如果文件是一个目录,则值为真;

-f file:如果文件是一个普通文件,则值为真;

-e file:如果文件存在,则值为真。


测试数值

n1 -eq n2:n1等于n2,则值为真;

n1 -ne n2:n1不等于n2,则值为真;

n1 -gt n2:n1大于n2,则值为真;

n1 -lt n2:n1小于n2,则值为真;

n1 -ge n2:n1大于等于n2,则值为真;

n1 -le n2:n1小于等于n2,则值为真;


测试字符串

-z s1:如果s1长度为零,则值为真;

-n s1:如果s1长度不为零,则值为真;

s1 = s2:如果s1与s2相等,则值为真;

s1 != s2:如果s1与s2不等,则值为真;

s1:如果s1不是空串,则值为真;


测试逻辑运算符

-a:二元“与”操作符。例:if test $x -gt $y -a $y -gt $z。

-o:二元“或”操作符。

!:一元“非”操作符。例:if test ! $x -eq $y。