Shell编程中的条件判断(条件测试)

Shell中的条件判断(测试)类型:

1) 整数测试

2) 字符测试

3) 文件测试

条件测试的表达式:        (注: expression 与 [] 之间空格不能省略)

[ expression ]

[[ expression ]]

test expression

     expression的逻辑结果即为整个条件测试的结果,0为真,其他结果均为假.

 

expression中为整数比较时:

-eq: 测试两个整数是否相等, 比如 $A -eq $B;                      --equal                          
-ne: 测试两个整数是否不等;不等,为真;相等,为假;          --not equal
-gt: 测试一个数是否大于另一个数;大于,为真;否则,为假;  --great than
-lt: 测试一个数是否小于另一个数;小于,为真;否则,为假;   --less than
-ge: 大于或等于                                                            --great or equal
-le:小于或等于                                                             --less equal

 1 /*
 2  * 给定一个用户:
 3  *    1、如果其UID为0,就显示此为管理员;
 4  *    2、否则,就显示其为普通用户;
 5 **/
 6 
 7 #!/bin/bash
 8 
 9 USER=root
10 if [ `id -u $USER` -eq 0 ]; then
11     echo 'Administrator'
12 else
13     echo 'Common User'
14 fi

 

expression中为文件测试时: 

-e FILE:测试文件是否存在 ;
-f FILE: 测试文件是否为普通文件 ;
-d FILE: 测试指定路径是否为目录 ;
-r FILE: 测试当前用户对指定文件是否有读取权限;
-w FILE: 测试当前用户对指定文件是否有写权限;
-x FILE: 测试当前用户对指定文件是否有执行权限;   

1 #!/bin/bash
2 #
3 FILE=/etc/inittab
4 if [ ! -e $FILE ]; then
5     echo "The file doesn't exist."
6     exit 8
7 fi
8 ...

 

expression中为字符(串)测试:       

==:测试是否相等,相等为真,不等为假    (=也可,因为shell能识别)
!=: 测试是否不等,不等为真,等为假      (等号两端要有空格)
> :  
< :
-n string: 测试指定字符串是否为空,空则真,不空则假
-z string: 测试指定字符串是否不空,不空为真,空则为假

 

posted @ 2017-01-10 16:01  ant_colonies  阅读(242)  评论(0编辑  收藏  举报