UNPKG

3.8 kBMarkdownView Raw
1test
2===
3
4执行条件表达式。
5
6## 概要
7
8```shell
9test [expr]
10```
11
12## 主要用途
13
14- 执行条件表达式。
15
16## 参数
17
18### 文件操作符:
19
20```shell
21-a FILE 如果文件存在,则为true。
22-b FILE 如果文件是块特殊的,则为true。
23-c FILE 如果文件是特殊字符,则为true。
24-d FILE 如果文件是目录,则为true。
25-e FILE 如果文件存在,则为true。
26-f FILE 如果文件存在并且是常规文件,则为true。
27-g FILE 如果文件是set-group-id,则为true。
28-h FILE 如果文件是符号链接,则为true。
29-L FILE 如果文件是符号链接,则为true。
30-k FILE 如果文件的粘滞位(sticky)设置了,则为true。
31-p FILE 如果文件是命名管道,则为true。
32-r FILE 如果您可以读取文件,则为true。
33-s FILE 如果文件存在且不为空,则为true。
34-S FILE 如果文件是套接字,则为true。
35-t FD 如果在终端上打开FD,则为True。
36-u FILE 如果文件是set-user-id,则为true。
37-w FILE 如果文件可写,则为true。
38-x FILE 如果您可以执行文件,则为true。
39-O FILE 如果文件有效地归您所有,则为true。
40-G FILE 如果文件有效地归您的组所有,则为true。
41-N FILE 如果文件自上次读取以来已被修改,则为true。
42
43FILE1 -nt FILE2 根据修改日期,如果 file1 比 file2 新,则为true。
44FILE1 -ot FILE2 根据修改日期,如果 file1 比 file2 旧,则为true。
45FILE1 -ef FILE2 如果 file1 为 file2 的硬链接,则为true。
46```
47### 字符串运算符:
48
49```shell
50-z STRING 如果字符串为空,则为true。
51-n STRING 如果字符串不为空,则为true。
52STRING 如果字符串不为空,则为true。
53STRING1 = STRING2 如果字符串相等,则为true。
54STRING1 != STRING2 如果字符串不相等,则为true。
55STRING1 < STRING2 如果 STRING1 的字典排序在 STRING2 之前,则为true。
56STRING1 > STRING2 如果 STRING1 在字典排序在 STRING2 之后,则为true。
57```
58
59### 其他运算符:
60
61```shell
62-o OPTION 如果启用了shell选项OPTION,则为true。
63-v VAR 如果设置了shell变量VAR,则为true。
64-R VAR 如果设置了shell变量VAR并且是变量引用,则为true。
65!EXPR 如果expr为假,则为true。
66EXPR1 -a EXPR2 如果expr1和expr2都为true,则为true。
67EXPR1 -o EXPR2 如果expr1或expr2为true,则为true。
68arg1 OP arg2 算术表达式测试; OP是 -eq,-ne,-lt,-le,-gt,-ge 中的一个;算术表达式为真时返回true。
69```
70
71## 返回值
72
73如果表达式执行结果为成功时返回0,当表达式执行结果为失败或给出非法参数时返回1。
74
75## 例子
76
77```shell
78# 执行条件表达式并显示返回值。
79[root@pc root]$ test ! "abc" == 123; echo $?
800
81
82# 等价形式,注意:方括号 [ 后面的空格以及方括号 ] 前面的空格。
83[root@pc root]$ [ ! "abc" == 123 ]; echo $?
840
85
86[root@pc root]$ [[ ! "abc" == 123 ]]; echo $?
870
88```
89
90
91### 注意
92
931. 该命令等价于 `[`
942. 编写 bash 条件表达式可用内建命令 `test``[` ,组合命令 `[[`
95 > - 关于条件表达式可以查看[这里](http://www.gnu.org/software/bash/manual/html_node/Bash-Conditional-Expressions.html#Bash-Conditional-Expressions);
96 > - 关于内建命令的索引可以查看[这里](http://www.gnu.org/software/bash/manual/html_node/Builtin-Index.html#Builtin-Index);
97 > - 关于组合命令的索引可以查看[这里](http://www.gnu.org/software/bash/manual/html_node/Reserved-Word-Index.html#Reserved-Word-Index)
983. 该命令是bash内建命令,相关的帮助信息请查看`help`命令。
99
100
101