test
执行条件表达式。
概要
1test [expr]
主要用途
- 执行条件表达式。
参数
文件操作符:
1-a FILE 如果文件存在,则为true。
2-b FILE 如果文件是块特殊的,则为true。
3-c FILE 如果文件是特殊字符,则为true。
4-d FILE 如果文件是目录,则为true。
5-e FILE 如果文件存在,则为true。
6-f FILE 如果文件存在并且是常规文件,则为true。
7-g FILE 如果文件是set-group-id,则为true。
8-h FILE 如果文件是符号链接,则为true。
9-L FILE 如果文件是符号链接,则为true。
10-k FILE 如果文件的粘滞位(sticky)设置了,则为true。
11-p FILE 如果文件是命名管道,则为true。
12-r FILE 如果您可以读取文件,则为true。
13-s FILE 如果文件存在且不为空,则为true。
14-S FILE 如果文件是套接字,则为true。
15-t FD 如果在终端上打开FD,则为True。
16-u FILE 如果文件是set-user-id,则为true。
17-w FILE 如果文件可写,则为true。
18-x FILE 如果您可以执行文件,则为true。
19-O FILE 如果文件有效地归您所有,则为true。
20-G FILE 如果文件有效地归您的组所有,则为true。
21-N FILE 如果文件自上次读取以来已被修改,则为true。
22
23FILE1 -nt FILE2 根据修改日期,如果 file1 比 file2 新,则为true。
24FILE1 -ot FILE2 根据修改日期,如果 file1 比 file2 旧,则为true。
25FILE1 -ef FILE2 如果 file1 为 file2 的硬链接,则为true。
字符串运算符:
1-z STRING 如果字符串为空,则为true。
2-n STRING 如果字符串不为空,则为true。
3STRING 如果字符串不为空,则为true。
4STRING1 = STRING2 如果字符串相等,则为true。
5STRING1 != STRING2 如果字符串不相等,则为true。
6STRING1 < STRING2 如果 STRING1 的字典排序在 STRING2 之前,则为true。
7STRING1 > STRING2 如果 STRING1 在字典排序在 STRING2 之后,则为true。
其他运算符:
1-o OPTION 如果启用了shell选项OPTION,则为true。
2-v VAR 如果设置了shell变量VAR,则为true。
3-R VAR 如果设置了shell变量VAR并且是变量引用,则为true。
4!EXPR 如果expr为假,则为true。
5EXPR1 -a EXPR2 如果expr1和expr2都为true,则为true。
6EXPR1 -o EXPR2 如果expr1或expr2为true,则为true。
7arg1 OP arg2 算术表达式测试; OP是 -eq,-ne,-lt,-le,-gt,-ge 中的一个;算术表达式为真时返回true。
返回值
如果表达式执行结果为成功时返回0,当表达式执行结果为失败或给出非法参数时返回1。
例子
1# 执行条件表达式并显示返回值。
2[root@pc root]$ test ! "abc" == 123; echo $?
30
4
5# 等价形式,注意:方括号 [ 后面的空格以及方括号 ] 前面的空格。
6[root@pc root]$ [ ! "abc" == 123 ]; echo $?
70
8
9[root@pc root]$ [[ ! "abc" == 123 ]]; echo $?
100
注意
- 该命令等价于
[
。 - 编写 bash 条件表达式可用内建命令
test
,[
,组合命令[[
;
- 该命令是bash内建命令,相关的帮助信息请查看
help
命令。
来源:https://github.com/jaywcjlove/linux-command
最后修改于: Wednesday, January 31, 2024
版权申明:
- 未标注来源的内容全部为原创,未经授权请勿转载(因转载后排版往往错乱、内容不可控、无法持续更新等);
- 非营利为目的,演绎本博客任何内容,请以'原文出处'或者'参考链接'等方式给出本站相关网页地址(方便读者)。