expr命令是一個手工命令列計數器,用於在UNIX/LINUX下求運算式變數的值,一般用於整數值,也可用於字串。
–格式為:
expr Expression(命令讀入Expression 參數,計算它的值,然後將結果寫入到標準輸出)
–參數應用規則:
用空格隔開每個項;
用 / (反斜線) 放在 shell 特定的字元前面;
對包含空格和其他特殊字元的字串要用引號括起來
–expr用法執行個體講解:
(1)、計算字串長度
> expr length “this is a test”
14
(2)、抓取字串
> expr substr “this is a test” 3 5
is is
(3)、抓取第一個字元數字串出現的位置
> expr index “sarasara” a
2
(4)、字串真實重現
> expr quote sara
sara
(5)、整數運算
> expr 14 % 9
5
> expr 10 + 10
20
> expr 1000 + 900
1900
> expr 30 / 3 / 2
5
> expr 30 /* 3 (使用乘號時,必須用反斜線屏蔽其特定含義。因為shell可能會誤解顯示星號的意義)
90
> expr 30 * 3
expr: Syntax error
(6)、增量計數
說明:expr在迴圈中用於增量計算。先將變數初始化為0,然後迴圈值加1,反引號的用法為命令替代。
> LOOP=0
> LOOP=`expr $LOOP + 1`
(7)、數值測試
說明:用expr測試一個數。如果試圖計算非整數,則會返回錯誤。
> rr=3.4
> expr $rr + 1
expr: non-numeric argument
> rr=5
> expr $rr + 1
6
(8)、模式比對
說明:expr也有模式比對功能。可以使用expr通過指定冒號選項計算字串中字元數。.*意即任何字元重複0次或多次。
> VALUE=account.doc
> expr $VALUE : ‘.*’
8
在expr中可以使用字串匹配操作,這裡使用模式抽取.doc檔案附屬名。
$expr $VALUE : ‘/(.*/).doc’
accounts