文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>第17章.条件测试

第17章.条件测试

时间:2008-09-27  来源:zwc0819

[root@test zwc]# ls
aaa         awk         dht      fruits      guote2.txt  sedex.txt
abc         change.sed  dos.sed  func.text   guote.txt   sed.out
append.sed  dd          dos.txt  grade.txt   mix.sed     sql.txt
as          Desktop     filedt   guote1.txt  sed         video.txt
1.测试文件状态
[root@test zwc]# ls -l as
-rw-r--r--  1 root root 32  9月 10 19:07 as

a.测试文件是否可写并用最后退出命令测试是否成功.
[root@test zwc]# test -w as
[root@test zwc]# echo $?
0
b.测试文件是否可执行并用最后退出命令测试是否成功.
[root@test zwc]# test -x as
[root@test zwc]# echo $?
1
2.测试时使用逻辑操作符
[root@test zwc]# ls -l aaa abc
-rwxr--r--  1 root root 55  9月  4 22:02 aaa
-rwxr-xr-x  1 root root 46  9月  4 21:39 abc
a.测试两个文件是否均可写
[root@test zwc]# test -w aaa -a -w abc
[root@test zwc]# echo $?
0
b.测试其中一个是否可执行
[root@test zwc]# test -x aaa -o -x abc
[root@test zwc]# echo $?
0
[root@test zwc]# chmod -x abc
[root@test zwc]# ls -l aaa abc
-rwxr--r--  1 root root 55  9月  4 22:02 aaa
-rw-r--r--  1 root root 46  9月  4 21:39 abc
[root@test zwc]# test -x aaa -o -x abc
[root@test zwc]# echo $?
0
c.测试文件abc是否可写,可执行
[root@test zwc]# [ -w abc -a -x abc ]
[root@test zwc]# echo $?
1
3.字符串测试
a.测试环境变量EDITOR是否为空
[root@test zwc]# test -z $EDITOR
[root@test zwc]# echo $?
0
b.非空,取值是否是vi
[root@test zwc]# test $EDITOR = "vi"
bash: test: =: unary operator expected
[root@test zwc]# test "$EDITOR" = "vi"
[root@test zwc]# echo $?
1
c.不是,用echo命令反馈其值
[root@test zwc]# echo $EDITOR

d.测试两个变量是否相等
[root@test zwc]# TAPE="/dev/rmt0"
[root@test zwc]# TAPE2="/dev/rmt1"
[root@test zwc]# echo $TAPE
/dev/rmt0
[root@test zwc]# echo $TAPE2
/dev/rmt1
[root@test zwc]# test "$TAPE" = "$TAPE2"
[root@test zwc]# echo $?
1
e.测试变量tape与tape2是否不相等
[root@test zwc]# test "$TAPE" != "$TAPE2"
[root@test zwc]# echo $?
0
4.测试数值
一般格式为:
[ "number" "number_operate" "number" ]
number_operate可为:
-eq    数值相等  
-ne    数值不相等
-gt    第一个数大于第二个数
-lt    第一个数小于第二个数
-le    第一个数小于等于第二个数
-ge    第一个数大于等于第二个数
a.测试两个数字是否相等
[root@test zwc]# NUMBER=130
[root@test zwc]# [ "$NUMBER" -eq "130" ]
[root@test zwc]# echo $?
0
b.改变第二个数,结果返回失败,状态为1
[root@test zwc]# [ "$NUMBER" -eq "100" ]
[root@test zwc]# echo $?
1
c.测试130是否大于100
[root@test zwc]# [ "$NUMBER" -gt "100" ]
[root@test zwc]# echo $?
0
d.测试两个整数变量
[root@test zwc]# DEST_COUNT=15
[root@test zwc]# SOURCE_COUNT=13
[root@test zwc]# [ "$DEST_COUNT" -gt "$SOURCE_COUNT" ]
[root@test zwc]# echo $?
0
e.可以不比将整数值放入变量,直接用数字即刻,但要加引号
[root@test zwc]# [ "990" -le "995" ]
[root@test zwc]# echo $?
0
f.可以用逻辑操作符将两个测试表达式结合起来
[root@test zwc]# [ "990" -le "995" -a "123" -gt "100" ]
[root@test zwc]# echo $?
0
5.expr用法
[root@test zwc]# expr 10 + 10
20
[root@test zwc]# expr 900 + 100
1000
[root@test zwc]# expr 30 / 3
10
[root@test zwc]# expr 30 / 3 / 2
5
[root@test zwc]# expr 30 - 2
28
[root@test zwc]# expr 30 \* 3
90
a.增量计数
[root@test zwc]# LOOP=0
[root@test zwc]# LOOP=`expr $LOOP + 1`
[root@test zwc]# echo $LOOP
1
b.数值测试
可以用expr测试一个数.如果试图计算非整数,将返回错误
[root@test zwc]# expr 0.3 + 1
expr: non-numeric argument
[root@test zwc]# VALUE=12
[root@test zwc]# expr $VALUE + 10 > /dev/null
[root@test zwc]# echo $?
0
[root@test zwc]# VALUE=hello
[root@test zwc]# expr $VALUE + 10 > /dev/null
expr: non-numeric argument
expr也可疑返回其本身的推出状态,成功返回1,其他值为无效或错误
[root@test zwc]# VALUE=hello
[root@test zwc]# expr $VALUE = "hello"
1
[root@test zwc]# echo $?
0
c.模式匹配
[root@test zwc]# VALUE=accounts.doc
[root@test zwc]# expr $VALUE : '\(.*\).doc'
accounts
[root@test zwc]# expr $VALUE : '.*'
12

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

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载