條件測試

##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

(完)

相關文章
相關標籤/搜索