Linux的控制语句需要用到各种条件,而条件又分为不同的类型。
测试表达式:
(1)整数测试
A -gt B:大于
A -ge B:大于等于
A -eq B:等于
A -le B:小于等于
A -ne B:不等于
A -lt B:小于
例如:
(2)字符串测试
A > B
A<B
A<=B
A>=B
A!=B :不等于
A==B 或 A =B:等于
-z A:判断A是否为空,空为真,不空为假
-n A:判断A是否为空,不空为真,空为假
(3) 文件测试
-e
$file:是否存在,存在为真
-a $file:同上,弃用
-f $file:文件是否存在,且为普通文件;
-d
$file:是否存在,且为目录
-h $file:是否存在且为符号链接文件
-L $file:同上
-b
$file:是否存在且为块设备文件
-c $file:是否存在且为字符设备文件
-S $file:套接字文件
-p
$file:管道文件
-r
$file:当前用户对此文件是否拥有读权限
-w $file:写权限
-x $file:执行权限
-u
$file:文件是否拥有suid权限
-g $file:文件是否拥有sgid权限
-k $file:文件是否拥有sticky权限
-o
$file: 当前用户是否为文件的属主
-G $file:当前用户是否属于文件的属组
-N
$file:文件自从上次被读取之后,是否被修改过
[ -N /tmp/fstab ]
echo $?
$f1 -nt $f2:
文件f1是否比文件f2新
$f1 -ot $f2:文件f1是否比文件f2旧
$f1 -ef
$f2:两个文件是否为同一个文件的硬链接
组合测试条件
给条件添加逻辑操作符 注意:命令不能用这些
或,-o:
与:-a:[ $uid -gt 0
-a $uid -lt 500]
非:!
-z:为空
命令连接:短路操作符,字符串命令使用此类命令
与 &&
或:||
非:[ !
EXPRESSION ]
原文地址:http://chickengg.blog.51cto.com/10402610/1660569