条件测试常用的语法:
| 语法格式 | 说明 |
| [ <测试表达式> ] | []的边界和内容之间至少有一个空格 |
| [[ <测试表达式> ]] | [[]的边界和内容之间至少有一个空格 |
注意:&&、||、>、<等操作符可以应用于[[]]中,但不能应用于[]中,在[]中一般用-a,-o,-gt(用于整数)代替上述操作符
常用的文件判断操作符
| -d 文件,d的全拼为directory | 文件存在且为目录则为真,即测试表达式成立 |
| -f 文件,f的全拼为file | 文件存在且为普通文件则为真,即测试表达式成立 |
| -e 文件, e的全拼为exist | 文件存在则为真,即测试表达式成立。-e不辨别是目录还是文件 |
| -r/w/x 文件,r/w/x的全拼为read/write/executable | 文件存在且可读/可写/可执行,即测试表达式成立 |
| -s 文件,s的全拼为size | 文件存在且文件大小不为0则为真 |
| -L 文件,L的全拼为Link | 文件存在且为链接文件则为真 |
| f1 -nt f2,nt的全拼为newer than | 文件f1比文件f2新则为真 |
| f1 -ot f2,ot的全拼为older than | 文件f1比文件f2旧则为真 |
常用的字符串测试表达式
| -n "字符串" | 若字符串的长度不为0,则为真 |
| -z "字符串" | 若字符串的长度不为0,则为真 |
操作符比较
| 在test以及[]中使用的比较符号 | 在(())和[[]]中使用的比较符号 | 说明 |
| -eq | ==或= | 等于 |
| -ne | != | 不等于 |
| -gt | > | 大于 |
| -ge | >= | 大于等于 |
| -lt | < | 小于 |
| -le | <= | 小于等于 |
| -a | && | 与 |
| -o | || | 或 |
| ! | ! | 非 |
















