日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Shell脚本攻略03-使用shell进行数学运算

發布時間:2025/3/21 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 的和為:11

let 自加操作

$ 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 11

expr

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是一個用于數學運算的高級工具,這個精密計算器包含了大量的選項。
我們可以借助它執行浮點數運算并應用一些高級函數

[root@entel1 Templates]# cat bc.sh #!/bin/bash #文件名稱:bc.sh #文件內容:bc的運算echo "4 * 0.56" | bcno=54; result=`echo "$no * 1.5" | bc` echo $result [root@entel1 Templates]# ./bc.sh 2.24 81.0

其他參數可以置于要執行的具體操作之前,同時以分號作為定界符,通過stdin傳遞給bc.

設定小數精度

在下面的例子中,參數scale=2將小數位個數設置為2。因此,
bc將會輸出包含兩個小數位的數值。

echo "scale=2;3/8" | bc 0.37

進制轉換

用bc可以將一種進制系統轉換為另一種。
來看看如何將十進制轉換成二進制,然后再將二進制轉換回十進制:

#!/bin/bash 用途:數字轉換 no=100 echo "obase=2;$no" | bc 1100100 no=1100100 echo "obase=10;ibase=2;$no" | bc 100

計算平方以及平方根。

echo "sqrt(100)" | bc #Square root echo "10^10" | bc #Square
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的Shell脚本攻略03-使用shell进行数学运算的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。