Shell脚本攻略03-使用shell进行数学运算
生活随笔
收集整理的這篇文章主要介紹了
Shell脚本攻略03-使用shell进行数学运算
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
概述
無論哪種編程語言都少不了算術操作,在這則攻略中,我們將會研究在shell中進行算術運算的各種方法。
理論知識
在Bash shell環境中,可以利用let、 (( ))和[]執行基本的算術操作。
而在進行高級操作時, expr和bc這兩個工具也會非常有用。
栗子
可以用普通的變量賦值方法定義數值,這時,它會被存儲為字符串。
然而,我們可以用一些方法使它能像數字一樣進行運算。
#!/bin/bash no1=5; no2=6;let
let命令可以直接執行基本的算數操作。
當使用let時,變量名前面不需要再添加$.
#!/bin/bash #文件名稱:test.sh #文件功能:使用shell進行數學運算#變量賦值 no1=5 no2=6#let計算 let result=no1+no2 echo "$no1 + $no2 的和為:$result" [root@entel1 Templates]# ./test.sh 5 + 6 的和為:11let 自加操作
$ let no1++let 自減操作
$ let no1--自加自減簡寫形式
let no+=6 let no-=6它們分別等同于let no=no+6和let no=no-6。
[ ]
操作符[]的使用方法和let命令類似:
result=$[ no1 + no2 ]在[]中也可以使用$前綴,例如:
result=$[ $no1 + 5 ]栗子:
root@entel1 Templates]# cat test.sh #!/bin/bash #文件名稱:test.sh #文件功能:使用shell進行數學運算#變量賦值 no1=5 no2=6#let計算 let result=no1+no2 echo "$no1 + $no2 的和為:$result"#[]計算 result2=$[ no1+no2 ] echo $result2 result3=$[ $no1+$no2 ] echo $result3(( ))
也可以使用(()) ,使用(())時,變量名之前需要加上$:
栗子:
[root@entel1 Templates]# cat test.sh #!/bin/bash #文件名稱:test.sh #文件功能:使用shell進行數學運算#變量賦值 no1=5 no2=6#let計算 let result=no1+no2 echo "$no1 + $no2 的和為:$result"#[]計算 result2=$[ no1+no2 ] echo $result2 result3=$[ $no1+$no2 ] echo $result3#(())計算 result4=$((no1+no2)) result5=$(( no1+no2 )) echo "(()): $result4 $result5 [root@entel1 Templates]# ./test.sh 5 + 6 的和為:11 11 11 (()): 11 11expr
expr同樣可以用于基本算術操作:
result=`expr 3 + 4` result=$(expr $no1 + 5)栗子:
[root@entel1 Templates]# cat test.sh #!/bin/bash #文件名稱:test.sh #文件功能:使用shell進行數學運算#變量賦值 no1=5 no2=6#let計算 let result=no1+no2 echo "$no1 + $no2 的和為:$result"#[]計算 result2=$[ no1+no2 ] echo $result2 result3=$[ $no1+$no2 ] echo $result3#(())計算 result4=$((no1+no2)) result5=$(( no1 + no2 )) echo "(()): $result4 $result5"#expr計算 result6=`expr $no1 + $no2` echo "expr $result6" result7=$(expr $no1 + 100) echo $result7 [root@entel1 Templates]# ./test.sh 5 + 6 的和為:11 11 11 (()): 11 11 expr 11 105以上這些方法只能用于整數運算,而不支持浮點數。
bc
bc是一個用于數學運算的高級工具,這個精密計算器包含了大量的選項。
我們可以借助它執行浮點數運算并應用一些高級函數
其他參數可以置于要執行的具體操作之前,同時以分號作為定界符,通過stdin傳遞給bc.
設定小數精度
在下面的例子中,參數scale=2將小數位個數設置為2。因此,
bc將會輸出包含兩個小數位的數值。
進制轉換
用bc可以將一種進制系統轉換為另一種。
來看看如何將十進制轉換成二進制,然后再將二進制轉換回十進制:
計算平方以及平方根。
echo "sqrt(100)" | bc #Square root echo "10^10" | bc #Square《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的Shell脚本攻略03-使用shell进行数学运算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle优化01-引起数据库性能问题
- 下一篇: Oracle-HWM(High Wate