条件测试

##test命令 对文件、字符串和数字使用est命令测试

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

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

###文件状态测试ui

测试文件状态的条件表达式命令行

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

###字符串测试 字符串测试有5钟格式code

  • test "string"
  • test string_operator "string"
  • test "string" string_operator "string"
  • [ string_operator string]
  • [ string string_operator string]

其中string_operator有4种字符串

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

###数值测试 数值测试通常有2种格式string

  • test "number" numeric_operator "number"
  • [ "number" numeric_operator "number"]

其中numeric_operator有6种it

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

##expr命令io

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

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

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

(完)

相关文章
相关标签/搜索