1.簡單方法
在linux shell中,我們可以使用 $(()) 將表達式放在括號中,即可達到運算的功能。
2.其它方法:
用:expr 實現運算
注意:將需要運算的表達式寫入在expr 后面即可,保證 參數與運算符號中間有空格隔開。
類別 | 語法 | 說明 |
條件判斷 | expr1 /| expr2 | 如果 expr1 不是零或 null 則傳回 expr1,否則傳回 expr2。 |
expr1 /& expr2 | 如果 expr1 及 expr2 都不為零或 null,則傳回 expr1,否則傳回 0。 | |
四則運算 | expr1 + expr2 | 傳回 expr1 加 expr2 后的值。 |
expr1 - expr2 | 傳回 expr1 減 expr2 后的值。 | |
expr1/* expr2 | 傳回 expr1 乘 expr2 后的值。 | |
expr1 / expr2 | 傳回 expr1 除 expr2 后的值。 | |
expr1 % expr2 | 傳回 expr1 除 expr2 的余數。 | |
大小判斷 | expr1 /> expr2 | 如果 expr1 大于 expr2 則傳回 1,否則傳回 0。如果 expr1 及 expr2 都是數字,則是以數字大小判斷,否則是以文字判斷。以下皆同。 |
expr1 /< expr2 | 如果 expr1 小于 expr2 則傳回 1,否則傳回 0。 | |
expr1 = expr2 | 如果 expr1 等于 expr2 則傳回 1,否則傳回 0。 | |
expr1 != expr2 | 如果 expr1 不等于 expr2 則傳回 1,否則傳回 0。 | |
expr1 />= expr2 | 如果 expr1 大于或等于 expr2 則傳回 1,否則傳回 0。 | |
expr1 /<= expr2 | 如果 expr1 小于或等于 expr2 則傳回 1,否則傳回 0。 | |
文字處理 | expr1 : expr2 | 比較一固定字符串,即 regular expression。可以使用下列字符來輔助: . 匹配一個字符。 $ 找字符串的結尾。 [list] 找符合 list 中的任何字符串。 * 找尋 0 個或一個以上在 * 之前的字。 /( /) 傳回括號中所匹配的字符串。 |
從上面運算結果,看來上面表達式,不足以支持浮點運算了 。 查閱資料才發現:bash 不支持浮點運算,如果需要進行浮點運算,需要借助bc,awk 處理。
方法一:
方法二:
注:在shell 中$() 與 ``等效。 中間包含命令語句執行,返回執行結果。
新聞熱點
疑難解答