条件表达式
[ ] [[ ]] test三个内置命令
表达式 | 说明 |
---|---|
-a file | 文件存在,返回真 |
-b file | 文件存在,并且是二进制文件,返回真 |
-c file | 文件存在,并且是字符设备文件,返回真 |
-d file | 目录,返回真 |
-e file | 不管什么文件,只要存在,返回真 |
-f file | 普通文件,返回真 |
-g file | 设置了SGID位,返回真 |
-h file | 软连接,返回真 |
-k file | 设置粘滞位,返回真 |
-p file | 管道文件,返回真 |
-r file | 可读文件,返回真 |
-s file | 大小比0大的文件,返回真 |
-t fd | 文件句柄,返回真 |
-u file | 设置SUID位,返回真 |
-w file | 文件可写,返回真 |
-x file | 文件可执行,返回真 |
-O file | 文件所有者是有效用户,返回真 |
-G file | 文件所属组是有效组,返回真 |
-L file | 链接文件,返回真 |
-S file | socket文件,返回真 |
-N file | 最后一次读取后又修改了,返回真 |
file1 -nt file2 | file1比file2的修改时间新,返回真 |
file1 -ot file2 | file1比file2的修改时间旧,返回真 |
file1 -ef file2 | file1和file2指向同一个设备或者inode,返回真 |
-o optname | 检查某个shell选项是否开启。参见set -o |
-z string | 字符串长度不为0,返回真 |
string1 == string2 | 两个字符相同,返回真 |
string1 = string2 | 两个字符相同,返回真(必须是test POSIX模式)(不推荐这么写) |
string1 != string2 | 两字符不相等,返回真 |
string1 < string2 | 按照排序算法,string1在string2前面,返回真 |
string1 > string2 | 按照排序算法,string1在string2后面,返回真 |
num1 -eq num2 | 两数相等,返回真 |
num1 -ne num2 | 两数不相等,返回真 |
num1 -gt num2 | num1大于num2,返回真 |
num1 -lt num2 | num1小于num2,返回真 |
num1 -ge num2 | num1大于等于num2,返回真 |
num1 -le num2 | num1小于等于num2,返回真 |