条件表达式
格式
test 或 [ ] |
[[ ]] 或 (( ))
|
|
共同点 | 都可以用于判断 | 都可以用于判断 |
区别 | 仅支持普通判断,不支持正则 | 支持普通判断和正则 |
表示的逻辑关系符号不同 -a -o ! - gt |
&& || ! > < <= >= | |
应用场景 | 大部分情况下使用 [] 进行判断 | 需要使用正则时使用 |
判断文件
条件表达式-文件 | 说明 |
-f
|
file 判断是否存在,判断是否为文件
|
-d
|
dir 判断是否存在,判断是否为目录
|
-x |
executable 判断是否存在,是否有执行权限
|
-s |
size 判断是否存在,文件是否为空(非空为真)
|
-r |
是否有读权限
|
-w |
是否有写权限
|
-nt |
newer than 两个文件修改时间 是否更加新
|
-ot |
older than 两个文件修改时间 是否更加老
|
-L |
软连接
|
-e |
是否存在(任何类型文件)
|
# 条件测试语句,不会直接提示对错 [ -f /etc/hosts ] echo $?# 判断文件是否存在且为指定的格式 [ -d /etc/ ] && echo "成立" || echo "失败"# 检查/etc/rc.d/rc.local是否有执行权限 [ -x /etc/rc.d/rc.local ] && echo "成立" || echo "失败"# 检查ip命令是否有执行权限,如果没有则退出 [ -x /sbin/ip ] || exit 1# 检查/etc/hosts文件是否为空 [ -s /etc/hosts ] && echo "非空" || echo "空"