Linux-Shell指令碼程式設計-學習-4-Shell程式設計-運算元字-加減乘除計算
對於任何一種程式語言都很重要的特性就是運算元字的能力,遺憾的是,對於shell指令碼來說,這個過程比較麻煩,在shell指令碼中有兩種途徑來進行數學運算操作。
1.expr 最開始的時候,shell提供了一個特別的命令來梳理數學表示式,expr允許在命令列上處理數學表示式,但是特別笨拙。
使用expr運算加減還是可以,但是當遇到*號是,就會出現錯誤,需要用到轉義字元 \來識別,同樣,當你希望將數學算式的結果付給一個變數的時候,你需要使用反引號來獲取ecpr命令的輸出。
幸好,在這裡,shell還有有種解決方案,使用方括號[]
2 使用方括號[]
例如:
var1=$[1+5]
echo $var1
var2=$[$var1 * 2]
echo $var2
這裡計算就沒有問題了
3.浮點數的解決方案
在shell指令碼程式設計中,處理浮點數做常見的方法就是使用內建的bash計算機 bc
bc計算器可以識別 數字、變數、註釋、表示式、程式設計語句、函式。
在指令碼中使用bc的基本格式是 variable=`echo "options;expression" | bc
第一部分options允許你來設定變數,如果你需要設定的不止一個變數,可以用分號來分開他們。expression引數定義了通過bc執行的數學表示式。
例如
var1=`echo "scale=4;3.44/5" | bc`
echo the number is $var1
這種方法一般適用於啊+b的這中簡單的數學運算當我們遇到複雜的運算是,就顯得麻煩了,針對這個,bc命令能識別輸入重定向,允許你將一個檔案重定向到bc命令來處理,最好的方法就是使用內鏈出入重定向,允許你直接在控制檯重定向資料,在shell指令碼中,你可以講輸出賦給一個變數
variable=`bc << EOF
options
statements
expressions
EOF
`
EOF文字字串標示了內鏈重定向資料的開始和結尾,記住仍需要使用反引號來講bc命令的輸出賦給變數。
#!/bin/bash # an exoample for number var1=10.46 var2=43.67 var3=33.2 var4=71 var5=`bc << EOF scale =4 a1 = ($var1 * $var2) b1 = ($var3 * $var4) a1 + a2 EOF ` echo "the final answer for this mess is $var5"
以上就是一個簡單的例子