测试表达式是否成立,若不成立返回0,否则返回其他数值
test 条件表达式
[ 条件表达式 ]
| 测试选项 | 作用 |
|---|---|
| -b 文件判断该文件是否存在,并且是否为块设备文件 | |
| -c 文件 | 判断该文件是否存在,并且是否为字符设备文件 |
| -d 文件 | 判断该文件是否存在,并且是否为目录文件 |
| -e 文件 | 判断该文件是否存在 |
| -f 文件 | 判断该文件是否存在,并且是否为普通文件 |
| -L 文件 | 判断该文件是否存在,并且是否为符号链接文件 |
| -p 文件 | 判断该文件是否存在,并且是否为管道文件 |
| -s 文件 | 判断该文件是否存在,并且是否为非空 |
| -S 文件 | 判断该文件是否存在,并且是否为套接字文件 |
[ 操作符 文件或目录 ]
| 常用操作符 | 说明 |
|---|---|
| -d | 测试是否为目录(Directory) |
| -e | 测试目录或文件是否存在(Exist) |
| -f | 测试是否为文件(File) |
| -r | 测试当前用户是否有权限读取(Read) |
| -w | 测试当前用户是否有权限写入(Write) |
| -x | 测试当前用户是否有权限执行(eXcute) |

[ 整数1 操作符 整数2 ]
| 常用操作符 | 说明 |
|---|---|
| -eq | 等于(Equal) |
| -ne | 不等于(Not Equal) |
| -lt | 小于(Lesser Than) |
| -gt | 大于(Greater Than) |
| -le | 小于或等于(Lesser or Equal) |
| -ge | 大于或等于(Greater or Equal) |

[ 字符串1 = 字符串2 ]
[ 字符串1 != 字符串2 ]
[ -z 字符串 ]
| 常用操作串 | 说明 |
|---|---|
| = | 字符串内容相同 |
| != | 字符串内容不同,!号表示相反的意思 |
| -z | 字符串内容为空 |
| -n | 检查是否有字符串存在 |

[ 表达式1 ] 操作符 [ 表达式2 ]
命令1 操作符 命令2
| 常用操作符 | 说明 |
|---|---|
| -a或&& | 逻辑与,而且的意思 |
| -o或▕▕ | 逻辑或,或者的意思 |
| ! | 逻辑否 |


if 条件测试操作
then 命令序列
fi


if 条件测试操作
then
命令序列1
else
命令序列2
fi


if 条件测试操作1
then
命令序列1
elif 条件测试操作2
then
命令序列2
else
命令序列3
fi


原文:https://www.cnblogs.com/guxd/p/15001499.html