溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

shell中怎么實(shí)現(xiàn)四則運(yùn)算

發(fā)布時(shí)間:2021-08-09 15:52:28 來源:億速云 閱讀:204 作者:Leah 欄目:開發(fā)技術(shù)

本篇文章為大家展示了shell中怎么實(shí)現(xiàn)四則運(yùn)算,內(nèi)容簡明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

1.簡單方法

代碼如下:


$ b=$((5*5+5-3/2))
$ echo $b
29

在linux shell中,我們可以使用 $(()) 將表達(dá)式放在括號(hào)中,即可達(dá)到運(yùn)算的功能。

2.其它方法:

用:expr 實(shí)現(xiàn)運(yùn)算

代碼如下:


$ expr 5 - 4
1

注意:將需要運(yùn)算的表達(dá)式寫入在expr 后面即可,保證 參數(shù)與運(yùn)算符號(hào)中間有空格隔開。

類別 語法 說明
條件判斷expr1 \| expr2如果 expr1 不是零或 null 則傳回 expr1,否則傳回 expr2。
expr1 \& expr2如果 expr1 及 expr2 都不為零或 null,則傳回 expr1,否則傳回 0。
四則運(yùn)算expr1 + expr2傳回 expr1 加 expr2 后的值。
expr1 - expr2傳回 expr1 減 expr2 后的值。
expr1\* expr2傳回 expr1 乘 expr2 后的值。
expr1 / expr2傳回 expr1 除 expr2 后的值。
expr1 % expr2傳回 expr1 除 expr2 的余數(shù)。
大小判斷expr1 \> expr2如果 expr1 大于 expr2 則傳回 1,否則傳回 0。如果 expr1 及 expr2 都是數(shù)字,則是以數(shù)字大小判斷,否則是以文字判斷。以下皆同。
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??梢允褂孟铝凶址麃磔o助:

. 匹配一個(gè)字符。

$ 找字符串的結(jié)尾。

[list] 找符合 list 中的任何字符串。

* 找尋 0 個(gè)或一個(gè)以上在 * 之前的字。

\( \) 傳回括號(hào)中所匹配的字符串。


3.浮點(diǎn)運(yùn)算

代碼如下:


$ expr 5.0 - 4
expr: non-integer argument
$ echo $((5.0-4))
-bash: 5.0-4: syntax error in expression (error token is ".0-4")

從上面運(yùn)算結(jié)果,看來上面表達(dá)式,不足以支持浮點(diǎn)運(yùn)算了 。 查閱資料才發(fā)現(xiàn):bash 不支持浮點(diǎn)運(yùn)算,如果需要進(jìn)行浮點(diǎn)運(yùn)算,需要借助bc,awk 處理。

方法一:

代碼如下:


[chengmo@centos5 ~]$ c=$(echo "5.01-4*2.0"|bc)
[chengmo@centos5 ~]$ echo $c
-2.99

方法二:

代碼如下:


[chengmo@centos5 ~]$ c=$(awk 'BEGIN{print 7.01*5-4.01 }')
[chengmo@centos5 ~]$ echo $c
31.04

注:在shell 中$() 與 ``等效。 中間包含命令語句執(zhí)行,返回執(zhí)行結(jié)果。

上述內(nèi)容就是shell中怎么實(shí)現(xiàn)四則運(yùn)算,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI