標籤:shell 整數運算 運算子
算數運算子 shell只支援整數運算 常見的算數運算大多結合shell的內建命令let來使用。 + - * / % **(冪運算) += -= *= /= %= 位元運算 >> << & | ^ ~ 自增自減 ++ -- 例: let "b=3" let "a=(++b)"其他算數運算 簡單的算數運算過程中,如果有一個值是字元的,那麼解析為0 如R+2=2 1、使用$[]作運算 1、到目前看到的$這樣的形式有:${}(數組) $[](算數運算) $()(命令替換) 2、和$(())類似,可用於簡單的算數運算 例: echo $[1+1] echo $[2-1] echo $[2*2] echo $[5/2];//捨棄小數 echo $[5%2] echo $[3**2] 2、使用expr作運算 1、用於整數運算 2、要求運算元和運算元之間用空格隔開,否則只會列印字串,所以特殊的操作符需要逸出字元轉義(比如*) expr 1 + 1 expr 2 - 1 expr 2 \* 2 expr 2 / 1 如果編程的時候習慣了運算子兩邊有空格,這種運算方式還是不錯的,當然要注意“*”需要轉義 3、使用內建命令declare 當用declare定義成整形後,將後面的字串解析成了算數運算 例: delcare -i num num=1+3 echo $num 注意: shell中的算數運算要求運算子和運算元之間不能有空格,而是緊密連結的,特殊符號在這裡不用轉義,如果算木運算式中含有其他變數也不需要$引用。 4、算數擴充 算數擴充是shell提供的整數變數的運算機制,是shell的內建命令之一。 基本文法:$((算數運算式)) 其中,算數運算式由變數和運算子組成,常見的用法是顯示輸出和變數賦值。若運算式中的變數沒有定義,則在運算中假設為0(不會真給該變數賦值為0) 例: i=2 echo $((i*3+3)) #i前沒有$符號 echo $((2*(i+2))) #用括弧改變運算優先順序 5、使用bc作運算 上述幾種運算都是基於整數的。 bc:一款高精度計算語言 直接輸入bc,斷行符號進入bc介面 1、預設情況下bc並不顯示小數,通過scale=number設定顯示的小數位元。 2、bc支援算數運算,邏輯運算,比較運算 3、支援批處理和以管道方式處理運算式計算 例: 1、#cat cal.bc a=2;b=5;a+b; #cat cal.bc|bc 2、echo "2+3"|bc
shell學習筆記之四(整數運算)