1 | test
|
2 | ===
|
3 |
|
4 | shell环境中测试条件表达式工具
|
5 |
|
6 | ## 补充说明
|
7 |
|
8 | **test命令** 是shell环境中测试条件表达式的实用工具。
|
9 |
|
10 | ### 语法
|
11 |
|
12 | ```shell
|
13 | test(选项)
|
14 | ```
|
15 |
|
16 | ### 选项
|
17 |
|
18 | ```shell
|
19 | -b<文件>:如果文件为一个块特殊文件,则为真;
|
20 | -c<文件>:如果文件为一个字符特殊文件,则为真;
|
21 | -d<文件>:如果文件为一个目录,则为真;
|
22 | -e<文件>:如果文件存在,则为真;
|
23 | -f<文件>:如果文件为一个普通文件,则为真;
|
24 | -g<文件>:如果设置了文件的SGID位,则为真;
|
25 | -G<文件>:如果文件存在且归该组所有,则为真;
|
26 | -k<文件>:如果设置了文件的粘着位,则为真;
|
27 | -O<文件>:如果文件存在并且归该用户所有,则为真;
|
28 | -p<文件>:如果文件为一个命名管道,则为真;
|
29 | -r<文件>:如果文件可读,则为真;
|
30 | -s<文件>:如果文件的长度不为零,则为真;
|
31 | -S<文件>:如果文件为一个套接字特殊文件,则为真;
|
32 | -u<文件>:如果设置了文件的SUID位,则为真;
|
33 | -w<文件>:如果文件可写,则为真;
|
34 | -x<文件>:如果文件可执行,则为真。
|
35 | ```
|
36 |
|
37 | ### 实例
|
38 |
|
39 | linux中shell编程中的test常见用法:
|
40 |
|
41 | **判断表达式**
|
42 |
|
43 | ```shell
|
44 | if test #表达式为真
|
45 | if test ! #表达式为假
|
46 | test 表达式1 –a 表达式2 #两个表达式都为真
|
47 | test 表达式1 –o 表达式2 #两个表达式有一个为真
|
48 | test 表达式1 ! 表达式2 #条件求反
|
49 | ```
|
50 |
|
51 | **判断字符串**
|
52 |
|
53 | ```shell
|
54 | test –n 字符串 #字符串的长度非零
|
55 | test –z 字符串 #字符串的长度是否为零
|
56 | test 字符串1=字符串2 #字符串是否相等,若相等返回true
|
57 | test 字符串1!=字符串2 #字符串是否不等,若不等反悔false
|
58 | ```
|
59 |
|
60 | **判断整数**
|
61 |
|
62 | ```shell
|
63 | test 整数1 -eq 整数2 #整数相等
|
64 | test 整数1 -ge 整数2 #整数1大于等于整数2
|
65 | test 整数1 -gt 整数2 #整数1大于整数2
|
66 | test 整数1 -le 整数2 #整数1小于等于整数2
|
67 | test 整数1 -lt 整数2 #整数1小于整数2
|
68 | test 整数1 -ne 整数2 #整数1不等于整数2
|
69 | ```
|
70 |
|
71 | **判断文件**
|
72 |
|
73 | ```shell
|
74 | test File1 –ef File2 两个文件是否为同一个文件,可用于硬连接。主要判断两个文件是否指向同一个inode。
|
75 | test File1 –nt File2 判断文件1是否比文件2新
|
76 | test File1 –ot File2 判断文件1比是否文件2旧
|
77 | test –b file #文件是否块设备文件
|
78 | test –c File #文件并且是字符设备文件
|
79 | test –d File #文件并且是目录
|
80 | test –e File #文件是否存在 (常用)
|
81 | test –f File #文件是否为正规文件 (常用)
|
82 | test –g File #文件是否是设置了组id
|
83 | test –G File #文件属于的有效组ID
|
84 | test –h File #文件是否是一个符号链接(同-L)
|
85 | test –k File #文件是否设置了Sticky bit位
|
86 | test –b File #文件存在并且是块设备文件
|
87 | test –L File #文件是否是一个符号链接(同-h)
|
88 | test –o File #文件的属于有效用户ID
|
89 | test –p File #文件是一个命名管道
|
90 | test –r File #文件是否可读
|
91 | test –s File #文件是否是非空白文件
|
92 | test –t FD #文件描述符是在一个终端打开的
|
93 | test –u File #文件存在并且设置了它的set-user-id位
|
94 | test –w File #文件是否存在并可写
|
95 | test –x File #文件属否存在并可执行
|
96 | ```
|
97 |
|
98 |
|
99 |
|
\ | No newline at end of file |