条件测试

2007-07-01 21:02 来源: xiaophedap.cublog.cn 作者:xiaophedap 网友评论 0 条 浏览次数 39
 

  一般,在条件测试中,对文件、字符串和数字用test命令,对数字和字符串用expr命令。expr命令测试和执行数值输出。用最后退出状态命令——$?——可以知道testexpr的执行结果,0表示正常结束,1表示返回错误。

 

  1、测试文件状态

  test一般有两种格式:

    test condition

    或者是

    [ condition ]

    说明:使用方括号来测试时,注意在测试的条件两边加上空格。

  测试文件状态的条件表达式很多,最常见的如下:

文件状态测试

-d

目录

-s

文件长度大于0、非空

-f

正规文件

-w

可写

-l

符号链接

-u

文件有suid位设置

-r

可读

-x

可执行

  例如测试/home/crystal_shell/bin/findfile文件是否有可写权限,可以用以下两个方法:

    (1$ [ -w findfile ]

    (2$ test -w findfile

  然后可以用$ echo $?来检查到底是否有写权限,如果为0则表示有写权限,如果为1则表示没有。当然,如果对此怀疑,可以用$ ls -l来查看相应的权限是否和测试的一致。

 

  2、测试时使用逻辑操作符

  有时候需要比较两个文件的状态,shell提供了三种逻辑操作符来完成此功能:

    -a 逻辑与,操作符两边均为真,结果为真,否则为假

    -o 逻辑或,操作符两边只要一边为真,结果即为真,否则为假

    ! 逻辑否,条件为假,结果为真;条件为真,结果为假

 

  3、字符串测试

  字符串测试一般有5种格式:

    (1test “string”

    (2test string_operator “string”

    (3test “string” string_operator “string”

    (4[ string_operator string ]

    (5[ string string_operator string ]

  在这里,string_operator可以为以下几种:

    = 两个字符串相等

    != 两个字符串不相等

    -z 空字符串

    -n 非空字符串

 

  4、测试数值

  测试数值一般可以使用许多操作符,一般格式如下:

    “number” numeric_operator “number”

    或者是

    [ “number” numeric_operator “number” ]

  其中numeric_operator可以为:

    -eq 数值相等(=)

    -ne 数值不相等(!=)

    -gt 第一个数大于第二个数(>)

    -lt 第一个数小于第二个数(<)

    -le 第一个数小于等于第二个数(<=)

    -ge 第一个数大于等于第二个数(>=)

 

  5expr的用法

  expr命令一般用于整数值,但也可以用于字符串。一般格式为:

    expr argument operator argument

上一篇:查看系统中是否存..    下一篇:测试文件状态

相关主题:test  expr

网友评论