文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档> SHELL 学习笔记--test条件测试

SHELL 学习笔记--test条件测试

时间:2009-03-06  来源:gezn

 test条件测试

 

1 test命令

1)tests命令用于测试字符串,文件状态和数字。Test一般有两种格式。即:test condition或[condition](使用方括号时,要注意咋条件两边加上空格)

2)test 命令的退出状态:0表示成功,其他非0为失败

2 测试文件状态

1)常见的文件状态测试

-b filename   :当filename存在并且十块文件时返回真(返回0)

-c filename   :当filename存在并且是字符文件时返回真

-d pathname   :当pathname存在并且是一个目录时返回真

-e pathname   :当由pathname指定的文件或目录存在时返回真

-f filename   :当filename存在并且是正规文件时返回真

-g pathname   :当pathname指定的文件或目录存在并且设置了SGID位时返回真

-h filename    :当filename存在并且是符号链接文件时返回真(或-L filename)

-k pathname   :当pathname指定的文件或目录存在并且设置了“粘滞”位时,返回真

-p filename    :当filename存在并且是命名管道时返回真

-r pathname    :当pathname指定的文件或目录存在并且可读时返回真

-s filename     :当filename存在并且文件大小大于0时返回真

-S filename     :当filename存在并且是socket时,返回真

-t fd           :当gd是与终端设备相关联的文件描述符时返回真

-u pathname    : 当由pathname指定的文件或目录存在并且设置了SUID位是返回真

-w pathname    :当当由pathname指定的文件或目录存在并且可写时返回真

-x pathname     :当由pathname指定的文件或目录存在并且可执行时返回真

-O pathname     :当由pathname指定的文件或目录存在并被当前进程的有效用户id的用户拥有时返回真

-G pathname      :当由pathname存在并且属于当前进程的有效用户id的用户的用户组时返回真

File 1 –nt file2: file1比file2新时返回真

File 1 –ot file2 :file1 比file2旧时返回真

2)举例

    If [-b /dev/hda];then echo “yes”;else echo “no”;fi//将打印yes

    Test-c /dev/had; echo $? //将打印表示test命令的返回值为1,/dev/had不是字符设备

     [ -w /etc/passwd];echo $? //查看对当前用户而言,passwd文件是否可写

 

3 逻辑操作符

4 字符串测试

-z string   : 字符串string为空串9长度为0)时返回真

-n string   :字符串string为非空串时返回真

str1=str2  : 字符串str1和字符串str2相等时返回真

str1<str2  :……….

str1>str2  :…………..

str1!=str2  :

 

5 测试数值(比较整数)

1)常见数值测试

Int1 –eq int2: 如果int1等于int2,则返回真

Int1 –ne int2: 如果int1不等于int2,则返回真

Int1 –lt int2: 如果int1小于int2,则返回真

Int1 –le int2: 如果int1小于等于int2,则返回真

Int1 –gt int2: 如果int1大于int2,则返回真

Int1 –ge int2: 如果int1大于等于int2,则返回真

1)   举例:x=1;[$x –eq 1];ehco $?//将打印0 表示变量x的值等于数字1

6 expr 用于数值和字符串运算

1)expr Usage:expr expression

2) expr 命令运算完毕后,除了会返回表达式运算的结果外,还会生成一个expr执行状态码表示expr的执行状态。

3) expr的执行状态码

0:表达式结果不是0会null

1: 表达式结果是0或null

2;表示式无效

举例: LOOP=10;expr$LOOP’_’10(表达式$LOOP’_’10的运算结果)

       Echo $?          //输出结果为1(expr的执行状态码)

2)   expression可是一个数值表达式,也可以是一个字符串表达式。可以进行字符串运算。

Eg:expr  gezn//将打印gezn

7expr支持的运算符

0)  expr的expression中,运算符前后都要留个空格,并且一般最好加上单引号。

1)  expr的expression中可使用加(+)减(-)乘(*)除(/)取余(%)运算符

2)  …………………………还可以使用两类运算符;

① |:如果第一个单数不是null也不是0,则使用第一个参数为算子,否则使用第二个参数为算子。

&:…………………………………………………………………………否则使用数值0为算子。Eg:a=0;expr $a ‘|’ 4+5  //将打印9

       a=6;expr ‘(‘$a ‘&’ 4 ’)’+5 //将打印11

② 比较运算符:<, >,<= >= == !=

8 expr 用于整数运算

1)expr的expression中运算数智能是整数不能是小数。

2)举例: expr’(‘ 2 ‘+’ 3’)’ *2 //将打印10

9   expr可以用来测试一个数,如果试图计算非整数,expr将返回错误信息。

Eg:r=4;expr $r+4 //将打印8

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载