shell中的expr命令


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

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM