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) |