標籤:shell 算術運算 expr let
咖啡喝多了.估計今夜無眠了.媽蛋.
shell的算數運算.有太多了.包括很多網上可以下載到的工具.數不勝數.本文只選取常用的進行介紹.
1. $[ ] 這個可能用得比較少.包括我自己第一次見到這個一個東西的時候也很好奇.不過還真的能夠達到效果.僅限於整形.不能用來計算浮點數.
缺點是計算有局限性.貌似職能計算加減乘除和模運算.
注:**表示的是冪運算.
2. $(()) 我喜歡把這個叫做C語言模式.無論是在條件判斷或者迴圈中,還是放在這裡.變數都沒有限制.僅限於整形,浮點數不能用這個運算式.
3. let命令.顧名思義就是讓var1=[...].之所以這樣理解,是因為let的左值和右值都在let的右邊.僅限於整形.浮點數不能用.
注意空格,let後面的運算式不能有空格.
4. expr命令.和let不同.左值在expr左邊,右邊是運算式.僅限於整形,浮點數不能用.
注意空格,expr後面的參數之間必須有空格.
希望上面的例子不會產生誤導.那些運算僅僅是我所知道的.其實還可以有其它的運算,比如位元運算.
以上的命令我們可以看到一個共同點,那就是不能計算浮點數,且運算能力有限.可是現實中這幾個簡單的功能遠遠不能滿足我們的需求.怎麼辦.
當然同學們可以網上去找一個計算機,甚至帶UI介面都可以.這裡推薦一款super強大的電腦:bc
據說沒有它完成不了的運算.不知道是不是真的.
5. bc 不同於上面的命令,它從標準輸入接收運算式,然後把結果輸出到標準輸出.
其實對於bc我所知道的也就這麼幾個.很多都得靠man來尋找.而取進位這個功能,貌似man都找不到.我是在網上搜很久才找到的.也就是obase和ibase,二者分別代表輸出的進位和輸入的進位.
bc支援條件判斷,移位操作.實現了部分函數.設定可以使用for等流程式控制制語句.可謂博大精深啊.無奈我值掌握了皮毛.
當然linux下的計算命令遠不止這些,比如還可以輸入calc.會彈出字元介面進行運算.只是我僅僅積累了這幾種方式.
shell算數運算