shell-02 SHELL 算術(shù)運(yùn)算

a=$a+$b的形式:

((i=$j+$k))    等價(jià)于 i=`expr $j + $k`
((i=$j-$k))     等價(jià)于   i=`expr $j -$k`
((i=$j*$k))     等價(jià)于   i=`expr $j \*$k`
((i=$j/$k))     等價(jià)于   i=`expr $j /$k`

Let 形式:

Let expressions 執(zhí)行一個(gè)或多個(gè)表達(dá)式凰锡。表達(dá)式中的變量前不必有$.如果表達(dá)式中包含了空格或其他特殊字符,則必須引起來寡夹。
例:let “I = I + 1”let i=I+1

常用數(shù)學(xué)運(yùn)算符:

算術(shù)運(yùn)算符指的是可以在程序中實(shí)現(xiàn)加处面、減菩掏、乘魂角、除等數(shù)學(xué)運(yùn)算的運(yùn)算符智绸。Shell中常用的數(shù)學(xué)運(yùn)算符如下所示。
— +:對(duì)兩個(gè)變量做加法瞧栗。
— -:對(duì)兩個(gè)變量做減法。
— *:對(duì)兩個(gè)變量做乘法迹恐。
— /:對(duì)兩個(gè)變量做除法挣惰。
— **:對(duì)兩個(gè)變量做冪運(yùn)算殴边。
— %:取模運(yùn)算,第一個(gè)變量除以第二個(gè)變量求余數(shù)锤岸。
— +=:加等于,在自身基礎(chǔ)上加第二個(gè)變量是偷。
— -=:減等于拳氢,在第一個(gè)變量的基礎(chǔ)上減去第二個(gè)變量蛋铆。
— *=:乘等于馋评,在第一個(gè)變量的基礎(chǔ)上乘以第二個(gè)變量刺啦。
— /=:除等于,在第一個(gè)變量的基礎(chǔ)上除以第二個(gè)變量洪燥。
— %=:取模賦值磕秤,第一個(gè)變量對(duì)第二個(gè)變量取模運(yùn)算捧韵,再賦值給第一個(gè)變量。

運(yùn)算可以使用的方法:

運(yùn)算順序問題:echo 1+2不等于3
在使用這些運(yùn)算符時(shí)再来,需要注意到運(yùn)算順序的問題磷瘤。例如輸入下面的命令,輸出1+2的結(jié)果搜变。
echo 1+2
Shell并沒有輸出結(jié)果3,而是輸出了1+2挠他。在shell中有三種方法可以更改運(yùn)算順序。

  • 用expr改變運(yùn)算順序殖侵。可以用echo expr 1 +2來輸出1+2的結(jié)果拢军,用expr表示后面的表達(dá)式為一個(gè)數(shù)學(xué)運(yùn)算。需要注意的是茉唉,`并不是一個(gè)單引號(hào),而是“Tab”鍵上面的那個(gè)符號(hào)度陆。

  • let指示數(shù)學(xué)運(yùn)算艾凯〖嵛撸可以先將運(yùn)算的結(jié)果賦值給變量b斜姥,運(yùn)算命令是b=let 1 + 2鸿竖。然后用echo $b來輸出b的值铸敏。如果沒有let缚忧,則會(huì)輸出1+2杈笔。

  • $[]表示數(shù)學(xué)運(yùn)算。將一個(gè)數(shù)學(xué)運(yùn)算寫到$[]符號(hào)的中括號(hào)中蒙具,中括號(hào)中的內(nèi)容將先進(jìn)行數(shù)學(xué)運(yùn)算。例如命令 echo $[1+2]禁筏,將輸出結(jié)果3持钉。

shell實(shí)例:S=3(xy)+4x2+5y+6

下面是一個(gè)shell程序?qū)嵗槲簦瑢?shí)現(xiàn)數(shù)學(xué)函數(shù)S=3(xy)+4x2+5y+6的運(yùn)算始腾。在程序中以位置變量的方式輸入xy的值。程序的編寫步驟如下所示空执。
在主菜單中打開一個(gè)終端。在終端中輸入“vim”命令打開VIM辨绊。
在VIM中按“i”鍵進(jìn)入插入模式,然后輸入下面的代碼门坷。
代碼4-2 數(shù)學(xué)運(yùn)算實(shí)例:\源文件\04\4.4.sh

#!/bin/bash
#4.4.sh
s=0                                    #定義一個(gè)求和變量,初值為0拜鹤。
t=`expr$1**$2`                        #用expr改變運(yùn)算順序,求x的y次方敏簿。
t=$[t*3]                               #t乘以3。
s=$[s+t]                               #結(jié)果相加惯裕。
t=$[$1**2]                             #求x的平方。
t=$[t*4]                               #結(jié)果乘以4蜻势。
s=$[s+t]                               #結(jié)果相加。
t=`expr$2*5`                          #求5y的值握玛。
s=$[s+t]                               #結(jié)果相加够傍。
s=$[s+6]                               #結(jié)果加上6挠铲。
echo$s                                #輸出結(jié)果。
echo$((a%b))                          #取余

在這個(gè)程序中拂苹,需要注意算術(shù)運(yùn)算的寫法。如果沒有expr$[]更改運(yùn)算順序瓢棒,則會(huì)將運(yùn)算式以字符串的形式賦值浴韭,而不會(huì)賦值運(yùn)算結(jié)果脯宿。

按“Esc”鍵返回到普通模式。然后輸入“:w 4.4.sh”保存文件嗅绰。

輸入“:q”命令舍肠,按“Enter”鍵退出VIM。

在終端中翠语,輸入下面的命令對(duì)4.4.sh文件添加可執(zhí)行權(quán)限。

chmod +x 4.4.sh

輸入下面的命令運(yùn)行程序肌括。在命令中需要輸入兩個(gè)參數(shù)。

./4.4.sh 2 4

程序會(huì)完成S=3(xy)+4x2+5y+6的數(shù)學(xué)運(yùn)算并輸出結(jié)果谍夭,結(jié)果如下所示。

90

云平臺(tái)開發(fā)運(yùn)維解決方案@george.sre

個(gè)人主頁:https://geekgoogle.com

GitHub: https://github.com/george-sre

Mail: george.sre@hotmail.com

簡(jiǎn)書: georgesre - 簡(jiǎn)書

歡迎交流~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末紧索,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子珠漂,更是在濱河造成了極大的恐慌,老刑警劉巖媳危,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異待笑,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)暮蹂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來椎侠,“玉大人措拇,你說我怎么就攤上這事我纪】Γ” “怎么了胸嘴?”我有些...
    開封第一講書人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵术健,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我粘衬,道長(zhǎng)咳促,這世上最難降的妖魔是什么勘伺? 我笑而不...
    開封第一講書人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任跪腹,我火速辦了婚禮飞醉,結(jié)果婚禮上冲茸,老公的妹妹穿的比我還像新娘缅帘。我一直安慰自己轴术,他們只是感情好钦无,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著失暂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪趣席。 梳的紋絲不亂的頭發(fā)上兵志,一...
    開封第一講書人閱讀 51,274評(píng)論 1 300
  • 那天宣肚,我揣著相機(jī)與錄音,去河邊找鬼霉涨。 笑死,一個(gè)胖子當(dāng)著我的面吹牛笙瑟,可吹牛的內(nèi)容都是我干的楼镐。 我是一名探鬼主播往枷,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼错洁!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起屯碴,我...
    開封第一講書人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎导而,沒想到半個(gè)月后忱叭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡韵丑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了技潘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡享幽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拾弃,到底是詐尸還是另有隱情,我是刑警寧澤豪椿,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站搭盾,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏鸯隅。R本人自食惡果不足惜澜建,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一蝌以、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧跟畅,春花似錦、人聲如沸奸攻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至皆疹,卻和暖如春占拍,著一層夾襖步出監(jiān)牢的瞬間捎迫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工窄绒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人彰导。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓敲茄,卻偏偏與公主長(zhǎng)得像位谋,于是被迫代替她去往敵國(guó)和親堰燎。 傳聞我的和親對(duì)象是個(gè)殘疾皇子掏父,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 一秆剪、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 5,744評(píng)論 0 10
  • 第 2 章 SHELL 基礎(chǔ)知識(shí)2.1 shell腳本我們?cè)谏厦婧?jiǎn)單介紹了一下什么是shell腳本,現(xiàn)在我們來進(jìn)一...
    LiWei_9e4b閱讀 1,569評(píng)論 0 0
  • 一陶缺,shell題記 不懂shell的程序員不是好程序員,學(xué)習(xí)shell是為了自動(dòng)化洁灵,使用自動(dòng)化可以非常有效的提高工...
    架構(gòu)師小秘圈閱讀 8,724評(píng)論 3 70
  • 菜鳥教程shell在線編輯器大目錄整理: 1.第一個(gè) Shell 腳本嘗試 2.Shell 變量 3.Shell ...
    中酷男閱讀 5,631評(píng)論 0 12
  • 0.linux啟動(dòng)的步驟 設(shè)備加電----》BIOS自檢-----》grub引導(dǎo)啟動(dòng)-----》加載內(nèi)核----》...
    萌面大叔2閱讀 779評(píng)論 0 1