SHELL编程-条件测试

niuyisheng 2012-10-07

1. 基本语法

testcondition

[condition]

使用括号方式时,条件与括号之间要加空格。

2.测试文件状态

例:测试文件 scores.txe 是否可执行。

[root@localhost ~]# [ -x scores.txt ]  

[root@localhost ~]# echo $?  

1  

条件测试可以使用以下条件表达式:

-d目录

-f文本文件

-L符号链接

-s文件非空

-r可读

-w可写

-x可执行

-u 文件有suid位设置

3.字符串测试

字符串测试是条件判断中最重要的部分,

例:测试两个字符是否相等。退出状态变量$?,0表示成功,1表示失败。

if 命令就是使用该值做判断。

[root@localhost ~]# [ "aa" = "bb" ]  

[root@localhost ~]# echo $?  

1  

if [ -x scores.txt ]; then echo 11111; fi;   

字符串测试可以使用以下条件表达式:

=两字符串相等。

!=两字符串不等。

-z空串。

-n 非空串。

4.数字测试

例:测试第一个数字小于第二个数字。

[root@localhost ~]# [ "10" -lt "99" ]  

[root@localhost ~]# echo $?  

0  

数字测试可以使用以下条件表达式:

-eq相等。

-ne不等

-gt大于。

-ge大于或等于。

-lt小于。

-le小于或等于。

5.expr数字运算

加法运算:expr10+10

减法运算:expr20-10

加法运算:expr10/5

乘法运算:expr10\*5

如果是非数字参加运算会报错误,利用此点可以用来测试数字格式。

root@localhost opt]# if expr a + 100; then echo aaaa; else echo bbbb; fi;  

expr: non-numeric argument  

bbbb  

6. 两个以上的条件之间的逻辑关系

[root@localhost opt]# [ -w results.txt -a -w scores.txt ]  

[root@localhost opt]# echo $?  

0  

-a 逻辑与,两个条件同时为0,结果为0。-o 逻辑或,只要一个条件为0,结果为0。

相关推荐