shell中的expr命令

2021-08-21 21:20:43 字數 1319 閱讀 3375

expr 可以進行的操作如下:

邏輯操作

arg1 | arg2 邏輯或操作,真則返回arg1,否則返回arg2(以null或者0來判斷引數的真假,有短路功能)

arg1 & arg2 邏輯與操作,真則返回arg1,否則返回arg2(以null或者0來判斷引數真假,有短路功能)

關係操作

arg1 = arg2(或者arg1 == arg2)相等返回1,不等返回0

arg1 != arg2 不等返回1,相等返回0

arg1 > arg2 大於返回1,否則返回0

arg1 >= arg2 大於等於返回1,否則返回0

arg1 < arg2 小於返回1,否則返回0

arg1 <= arg2 小於等於返回1,否則返回0

需要注意的是在關係操作附中,只有所有的引數都是數值才按數值比較,否則,按字典順序比較

算數操作

arg1 + arg2

arg1 - arg2

arg1 * arg2

arg1 / arg2

arg1 % arg2

需要注意的是*在shell有其他意義,因此需要轉義使用\*

字串操作

string : regexp

1) regexp代表正規表示式,並且該表示式隱含帶有^,即regxp就是^regexp;

2) 如果regexp中沒有\(和\),那麼返回匹配的字元個數,或者完全不匹配返回0;如果帶有\(或者\),那麼就返回\(和\)包含的字串,或者不匹配返回null

match string regexp

類string : regexp相同

substr string position length

返回從position(從1開始),長length的子字串,如果position和length為0,負數,或者非負數,那麼返回null

index string charset

charset中可以包含多個字元,但是只是返回第乙個在string中字元的位置,如果charset中的字元都不在string中,那麼返回0

length string

返回string的長度

+ token

將token解釋為字串,即使token是關鍵字,比如expr index index n,由於第二個index是expr語法的關鍵字,因此會報錯,處理的方式就是如下處理:expr index + index n

所有上面表示式需要注意的是,操作符兩邊一定要有空格。

shell中的 expr命令的一些小用法

用途 求表示式變數的值 語法 expr expression 描述 expr 命令讀入 expression 引數,計算它的值,然後將結果寫入到標準輸出。用例 1.expr substr string1 startposition length 返回字串 hello world 中從位置3開始的5個...

linux系統中expr命令

1 linux系統中expr命令實現命令列中的四則運算 簡單示例 root linuxprobe test expr 5 3 在命令列中實現加法運算 8 2 中間必須有空格 root linuxprobe test expr 5 3 中間必須有空格 5 3 root linuxprobe test ...

shell 關於expr的用法

關於expr的用法 2004 04 23 15 18 pm 來自 linux文件 現載 www.8s8s.com 我執行了一下,沒有錯啊 你用的是什麼平台?什麼shell?我執行了一下,也沒有錯啊 hp ux ksh 請問 sum和 的值必須是整數嗎?hp ux上提供的ksh不支援陣列,所以sale...