test expression
[ expression ]
测试文件的表达式
表达式 | 为true的条件 |
---|---|
file1 -ef file2 | file1与file2两个文件通过硬连接指向同一个文件 |
file1 -nt file2 | file1比file2新 |
file1 -ot file2 | file1比file2旧 |
-b file | file存在且是一个块(设备)文件 |
-c file | file存在且是一个字符(设备)文件 |
-d file | file存在且是一个目录 |
-e file | file存在 |
-f file | file存在且是一个普通文件 |
-g file | file存在且设置了组ID |
-G file | file存在且属于有效组ID |
-k file | file存在且有粘滞位属性 |
-L file | file存在且是一个符号链接 |
-O file | file存在并且属于有效用户ID |
-p file | file存在并且是一个命名管道 |
-r file | file存在且可读 |
-s file | file存在且其长度大于0 |
-S file | file存在且是一个网络套接字 |
-t fd | fd是一个定向到终端/从终端定向的文件描述符,可以用来确定标准输入/输出/错误是否被重定向 |
-u file | file存在且设置了setuid位 |
-w file | file存在且可写 |
-x file | file存在且可执行 |
测试字符串的表达式
表达式 | 为true的条件 |
---|---|
string | string不为空 |
-n string | string长度大于0 |
-z string | string长度等于0 |
string1 = string2 string1 == string2 |
相等 |
string1 != string2 | 不等 |
string1 > string2 | 经过排序后,string1在string2之后 |
string1 < string2 | 经过排序后,string1在string2之前 |
测试数值的表达式
表达式 | 为true的条件 |
---|---|
integer1 -eq integer2 | integer1 等于 integer2 |
integer1 -ne integer2 | integer1 不等于 integer2 |
integer1 -le integer2 | integer1 小于等于 integer2 |
integer1 -lt integer2 | integer1 小于 integer2 |
integer1 -ge integer2 | integer1 大于等于 integer2 |
integer1 -gt integer2 | integer1 大于 integer2 |