国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > Linux Shell > 正文

shell實現(xiàn)四則運算簡單方法

2020-07-27 19:18:39
字體:
供稿:網(wǎng)友

1.簡單方法

復(fù)制代碼 代碼如下:

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

在linux shell中,我們可以使用 $(()) 將表達式放在括號中,即可達到運算的功能。

2.其它方法:

用:expr 實現(xiàn)運算

復(fù)制代碼 代碼如下:

$ expr 5 - 4
1

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

類別 語法 說明
條件判斷 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 的余數(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。可以使用下列字符來輔助:

. 匹配一個字符。

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

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

* 找尋 0 個或一個以上在 * 之前的字。

/( /) 傳回括號中所匹配的字符串。


3.浮點運算

復(fù)制代碼 代碼如下:

$ 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")

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

方法一:

復(fù)制代碼 代碼如下:

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

方法二:

復(fù)制代碼 代碼如下:

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

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 阳山县| 锦屏县| 和平县| 宝应县| 浦县| 晋宁县| 商城县| 乌拉特前旗| 宝山区| 德惠市| 新竹市| 定襄县| 驻马店市| 崇州市| 光山县| 五台县| 河西区| 清镇市| 德州市| 宁武县| 温州市| 明光市| 尉氏县| 买车| 白城市| 双流县| 涿州市| 井冈山市| 海口市| 黔南| 舟山市| 太保市| 彭山县| 楚雄市| 铜陵市| 平度市| 安陆市| 都昌县| 南平市| 滁州市| 博白县|