test的语法格式 test expression 或者 [expression]

test用于测试判断,一般情况下,如果是像比较一些字符串呀、整数的,直接使用判断表达式即可,但是往往我们会遇到一些像判断文件类型的等等…没有有表达式的情况,那么test命令的作用就体现出来了。

判断文件的几个参数符:

-b(块文件)  -c(字符文件)  -d(目录)  -e(文件或者目录) 

判断字符串的几个字符:

-eq(等于)  -ne(不等于)  -gt(大于)  -lt(小于)  -le(小于等于)  -ge(大于等于)  -z(空串)  =(两个字符串相等)  !=(两个字符串不相等)  -n(非空串)

filename01 –nt filename02 (01文件比02文件新)

filename01 –ot filename02 (01文件比02文件旧)

-z string (字符串长度为零)

-n string (字符串长度不为零)

(1)判断字符串

  -----------------------------------------
  Str1 = str2        | 当str1与str2相同时,返回True
  Str1! = str2       | 当str1与str2不同时,返回True
  Str                   | 当str不是空字符时,返回True
  -n str               | 当str的长度大于0时,返回True
  -z str               | 当str的长度是0时,返回True
  -----------------------------------------
(2)整数操作符 

  ---------------------------------------------
  Int1 -eq int2      |当int1等于int2时,返回True
  Int1 -ge int2      |当int1大于/等于int2时,返回True
  Int1 -le int2       |当int1小于/等于int2时,返回True
  Int1 -gt int2      |当int1大于int2时,返回True
  Int1 -ne int2      |当int1不等于int2时,返回True
  -----------------------------------------
(3)用于文件操作的操作符,他们能检查:文件是否存在,文件类型等
  test表达式   |    含义
  ------------------------------------------------
  -d file         |当file是一个目录时,返回 True
  -f file          |当file是一个普通文件时,返回 True
  -r file          |当file是一个刻读文件时,返回 True
  -s file          |当file文件长度大于0时,返回 True
  -w file         |当file是一个可写文件时,返回 True
  -x file         |当file是一个可执行文件时,返回 True
  ------------------------------------------------
(4)shell的逻辑操作符用于修饰/连接包含整数,字符串,文件操作符的表达式
  test表达式    |    含义
  ----------------------------------------------------------
  ! expr                |当expr的值是False时,返回True
  Expr1 -a expr2    |当expr1,expr2值同为True时,返回True
  Expr1 -o expr2    |当expr1,expr2的值至少有一个为True时,返回True
  -----------------------------------------------------------
注意:
tcsh shell 不使用test命令,但是tcsh中的表达式同样能承担相同的功能.tcsh
支持的表达式于C中的表达式相同.通常使用在if和while命令中.
  tcsh表达式    |    含义
  -------------------------------------------------------
  Int1 <= int2       |当int1小于/等于int2时,返回True
  Int1 >= int2       |当int1大于/等于int2时,返回True
  Int1 < int2         |当int1小于int2时,返回True
  Int1 > int2         |当int1大于int2时,返回True
  Str1 == str2       |当str1与str2相同时,返回True
  Str1 != str2        |当str1与str2不同时,返回True
  -r file                |当file是一个可读文件时,返回True
  -w file               |当file是一个可写文件时,返回True
  -x file               |当file是一个可执行文件时,返回True
  -e file               |当file存在时,返回True
  -o file               |当file文件的所有者是当前用户时,返回True
  -z file               |当file长度为0时,返回True
  -f file               |当file是一个普通文件时,返回True
  -d file              |当file是一个目录时,返回True
  Exp1 || exp2     |当exp1和exp2的值至少一个为True时,返回True
  Exp1 && exp2    |当exp1和exp2的值同为True时,返回True
  ! exp               |当exp的值为False时,返回True