Chinaunix首页 | 论坛 | 博客
  • 博客访问: 386418
  • 博文数量: 80
  • 博客积分: 1750
  • 博客等级: 上尉
  • 技术积分: 1380
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-13 11:35
文章分类
文章存档

2014年(3)

2013年(1)

2012年(54)

2011年(22)

分类: Python/Ruby

2012-08-27 19:38:59

shell条件测试
 
1.测试文件状态
test condition file 或 [ condition file ]
 
注意:方括号两边的空格要留出
condition的几种状态={ -d 目录
                      -f 文件
                      -L 符号连接文件
                      -r 读权限
                      -w 写权限
                      -x 执行权限
                      -s 文件非空 }
$ls -l file
-rw-r--r--      1     pachelbel pachelbel 0 Aug 27 19:45 file
 
$test -w file          #测试文件是否有读读权限,0表示成功,其他失败
$echo #?               #输出0,有读权限
0
 
$[ -w file ]          #方括号和上面等价
 
$[ -x file ]
$echo #?              #输出1,表示文件没有执行权限
1
 
2.条件判断逻辑操作符测试
 
-a 逻辑与,同真为真
-o 逻辑或,一真为真
 
[ conditionX file1 逻辑词 conditionY file2 ]
 
$ls -l file*
-rw-r--r--      1     pachelbel pachelbel 0 Aug 27 19:45 file1
-rwxr-xr--      1     pachelbel pachelbel 0 Aug 27 19:45 file2
 
$ [ -w file1 -a -w file ]    #测试两文件都有w权限,结果为真
$ echo $?
0
 
$ [ -x file1 -o -x file2 ]   #测试文件是否有x权限,结果为真
$ echo $?
1
 
$ [ -w file1 -a -x file2 ]   #测试file1有w权限,file2有x权限,结果为真
$ echo $?
0
 
3.条件判断字符串测试
字符串测试最常用的地方就是用户名测试
 
test string
test condition string  <==>  [ condition string ]
test string1 condition string2  <==> [ string1 condition string2 ]
 
condition的几种状态={  = 两字符串相等
                      != 两字符串不相等
                      -z 空串
                      -n 非空串  }
 
 
4.条件判断数值测试
[ number1 condition number2 ]
 
condition的几种状态={ -eq 数值相等
                      -ne 数值不相等
                      -gt 第一个数大于第二个数
                      -ge 第一个数大于等于第二个数
                      -lt 第一个数小于第二个数
                      -le 第一个数小于等于第二个数  }
$num1=10
$ [ num1 -eq 13 ]
$echo $?
 
$ [ num1 -eq 11 ]
$echo $?
 
$ [ num1 -ge 11 ]
$echo $?
 
$num2=12
$num3=15
$[ num2 -gt num3 ]
$echo $?
 
$[ "990" -le "991" -a "111" -gt "99" ]
$echo $?
 
 
关于条件的测试的简单介绍先到此为止。
阅读(1004) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~