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

注意

  1. 该命令等价于 [
  2. 编写 bash 条件表达式可用内建命令 test[ ,组合命令 [[
  • 关于条件表达式可以查看这里
  • 关于内建命令的索引可以查看这里
  • 关于组合命令的索引可以查看这里
  1. 该命令是bash内建命令,相关的帮助信息请查看help命令。

来源:https://github.com/jaywcjlove/linux-command

最后修改于: Wednesday, January 31, 2024
欢迎关注微信公众号,留言交流。

相关文章:

翻译: