条件测试

test命令

对文件、字符串和数字使用est命令

test有两种格式:test condition 或者 [ c ondition ]

三种逻辑操作符:-a 逻辑与、-o 逻辑或、!逻辑否

文件状态测试

测试文件状态的条件表达式

  • -d 目录
  • -f 正规文件
  • -L 符号连接
  • -r 可读
  • -w 可写
  • -x 可执行
  • -s 文件长度大于0、非空
  • -u 文件有suid位设置

字符串测试

字符串测试有5钟格式

  • test “string”
  • test string_operator “string”
  • test “string” string_operator “string”
  • [ string_operator string]
  • [ string string_operator string]

其中string_operator有4种

  • = 两个字符串相等
  • != 两个字符串不等
  • -z 空串
  • -n 非空串

数值测试

数值测试一般有2种格式

  • test “number” numeric_operator “number”
  • [ “number” numeric_operator “number”]

其中numeric_operator有6种

  • -eq 数值相等
  • -ne 数值不相等
  • -gt 第一个数大于第二个数
  • -lt 第一个数小于第二个数
  • -ge 第一个数大于等于第二个数
  • -le 第一个数小于等于第二个数

expr命令

expr命令一般用于整数值,但也可以用于字符串
expr格式: expr argument operator argument
expr也是一个手工命令行计数器。 eg: expr 10 + 10

增量计数

expr在循环钟用于增量计算。

eg:

> LOOP=0
> LOOP=`expr $LOOP + 1`

数值测试

用expr测试一个数。如果试图计数非整数,将返回错误

eg:

>expr rr + 1
expr: non-numeric argument

模式匹配

expr也有模式匹配功能。可以使用expr通过制定冒号选项计数字符串钟字符数。.*意即任何字符重复0次或者多次。

eg:

>NAME="123456789"
>expr $NAME : '.*'
>9

在expr中可以使用字符串匹配操作,这里使用模式.doc抽取文件名。

eg:

>VALUE="abc.doc"
>expr $VALUE : '\(.*\).doc'
>abc

(完)

你可能感兴趣的:(linux,test,expr)