shell中涉及到条件判断的语法是[ condition ],注意condition前后需要有空格,否则运行报错
可以通过echo $?输出结果是否为0来看条件判断是否为true
条件非空即为true
1. 比较两个整数大小
= 比较字符串
-eq 等于(equal) -gt 大于(greater than) -lt 小于(less than)
-le 小于等于(less equal) -ge 大于等于(greater equal) -ne 不等于(not equal)
2. 按照文件权限,判断文件
-r 有读的权限(read)
-w 文件有写的权限(write)
-x 文件有执行的权限(execute)
3. 判断文件类型及文件是否存在(-f 之后接文件名 或 绝对路径/文件名)
-f 文件存在并是一个常规的文件(file)
-e 文件存在(existence)
-d 文件存在并是一个目录(directory)
#!/bin/bash
# eg:判断文件file.txt是否存在
if [ -f file.txt ]; then
echo "文件存在!"
else
echo "文件不存在!"
fi
4. 多条件判断
&&表示前一条命令执行成功,才执行后一条判断命令
||表示上一条命令执行失败后,才执行下一条命令
编写一个小例子:
[kevin@hadoop100 datas]$ [ condition ] && echo success || echo fail
success
[kevin@hadoop100 datas]$ [ condition ] && [ ] || echo fail
fail