linux shell 裡面四則運算的實現方法。
1.簡單方法
[chengmo@centos5 ~]$ b=$((5*5+5-3/2))
[chengmo@centos5 ~]$ echo $b
29在linux shell中,我們可以使用 $(())
將表示式放在括號中,即可達到運算的功能。
2.其它方法:
用:expr 實現運算
[chengmo@centos5 ~]$ expr 5 - 4
1注意:將需要運算的表示式寫入在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 個或乙個以上在 * 之前的字。
\( \) 傳回括號中所匹配的字串。
3.浮點運算:
[chengmo@centos5 ~]$ expr 5.0 - 4
expr: 非法引數
[chengmo@centos5 ~]$ echo $((5.0-4))
-bash: 5.0-4: syntax error in expression (error token is ".0-4")
從上面運算結果,看來上面表示式,不足以支援浮點運算了。查閱資料才發現:bash 不支援浮點運算,如果需要進行浮點運算,需要借助bc,awk 處理。
方法一:
[chengmo@centos5 ~]$ c=$(echo "5.01-4*2.0"|bc)
[chengmo@centos5 ~]$ echo $c
-2.99
方法二:
[chengmo@centos5 ~]$ c=$(awk 'begin')
[chengmo@centos5 ~]$ echo $c
31.04
指標運算四則
要是看c語言的書,上面一定會說指標運算僅對陣列有意義,這話似乎也不錯,當然如果你打算對計算機系統徹底研究就不能拘泥於陣列中的指標運算了。下面我們來看看幾個例子。定義乙個指標,然它指向記憶體中的0x10000000位置。void ptr void 0x10000000 然後對它賦值 這樣嗎?ptr 1...
C typedef使用四則
c typedef char pchar pchar a,b c typedef struct tagpoint point point p1 用 typedef 來定義與平台無關的型別。比如定義乙個叫 real 的浮點型別,在目標平台一上,讓它表示最高精度的型別為 typedef long dou...
python四則運算程式 四則運算(Python)
四則運算程式 一 資訊 二.題目要求 寫乙個能自動生成小學四則運算題目的程式,然後在此基礎上擴充套件 除了整數以外,還要支援真分數的四則運算,例如 1 6 1 8 7 24 程式要求能處理使用者的輸入,判斷對錯,累積分數 程式支援可以由使用者自行選擇加 減 乘 除運算 三 import random...