test 与 文件测试命令
时间:2010-04-13 来源:wing731
test 命令
操作符 |
测试内容 |
字符串测试 |
|
[ string1 = string2 ] |
string1 等于 string2(=两侧必须有空格) |
[ string1 == string2 ] |
string1 等于 string2 |
[ string1 != string2 ] |
string1 不等于 string2(!=两侧必须有空格) |
[ string ] |
string 不为空 |
[ -z string ] |
string 的长度为0 |
[ -n string ] |
string 的长度不为0 |
逻辑测试 |
|
[ string1 -a string2 ] |
string1 和 string2都为真 |
[ string1 -o string2 ] |
string1 和 string2至少有一个为真 |
[ !string1 ] |
字符串不匹配 |
逻辑测试(复合命令) |
|
pattern1 && pattern2 |
pattern1 和 pattern2都为真 |
pattern1 ` |
pattern1 或 pattern2至少有一个为真 |
!pattern1 |
模式不匹配 |
整数测试 |
|
[ int1 -eq int2 ] |
int1 等于 int2 |
[ int1 -ne int2 ] |
int1 不等于 int2 |
[ int1 -gt int2 ] |
int1 大于 int2 |
[ int1 -ge int2 ] |
int1 大于或等于 int2 |
[ int1 -lt int2 ] |
int1 小于 int2 |
[ int1 -le int2 ] |
int1 小于或等于 int2 |
用于文件测试的二进制操作符 |
|
[ file1 -nt file2 ] |
如果文件file1比file2新则为真(根据修改时间) |
[ file1 -ot file2 ] |
如果文件file1比file2老则为真(根据修改时间) |
[ file1 -ef file2 ] |
如果文件file1比file2有相同的设备数或i结点数则为真 |
Example
[root@wingwu shell]# ln -s /root/shell/test.tar /root/shell/test/aaaa |
文件测试
测试操作符 |
测试结果为真是满足的条件 |
-b file |
块文件 |
-c file |
字符文件 |
-d file |
目录文件 |
-e file |
文件存在 |
-f file |
普通文件存在,且不是目录 |
-G file |
文件存在,且属于有效组ID时为真 |
-g file |
set -group- ID被设置 |
-b file |
块文件 |
-k file |
Sticky位被设置 |
-L file |
文件是一个符号连接 |
-p file |
文件是一个管道文件 |
-O file |
文件存在,且属于有效用户ID |
-r file |
文件可读 |
-S file |
文件是一个socket |
-s file |
文件大小非0 |
-t fd |
如果fd(文件描述符)被一个终端打开则为真 |
-u file |
set -user- ID为被设置 |
-w file |
文件可写 |
-x file |
文件可执行 |