當前位置:
首頁 > 最新 > linux-shell編程下的數學運算

linux-shell編程下的數學運算

前言

在Linux Shell編程中,一般默認輸出的都是字元串,如果需要執行數學運算的話就需要使用let或者expr等進行運算,而且這個只能進行整數運行;如果需要有浮點數運行就需要bc或者awk來現實。


整數運算

1、使用let命令進行賦值

#!/bin/bash

a=1

b=2

let c=a+b

echo a+b=c=$c

輸出:

a+b=c=3

注釋:let幾乎支持所有的運算符,包括括弧優先、++、--等;參數可以不需要$,就可取到值進行運算;支持方冪運算let "a=3**2";只支持整數運算。

2、使用expr進行運算

#!/bin/bash

a=22

b=33

echo $(expr $a + $b)

輸出:

55

注釋:需要$取變數值,注意運算符(比如:+)左右兩邊需要有空格;支持的操作符有: |、&、=、>、+、-、*、/、%;expr支持的操作符中所在使用時需用進行轉義的有:|、&、=、>、*;只支持整數運算。

3、使用$[]運算

#!/bin/bash

a=32

b=33

echo $[$a+$b]

輸出:

65

注釋:$[]將中括弧內的表達式作為數學運算先計算結果再輸出;對$[]中的變數進行訪問時前面需要加$;$[]支持的運算符與let相同,但也只支持整數運算。

4、使用(())進行處理

#!/bin/bash

a=33

b=44

echo a+b=$((a+b))

輸出:

a+b=77

注釋: (())的使用方法與let完全相同;但是可以直接輸出結果。

總結:以上就是對整數的處理方法,個人習慣用最後一種方式。


浮點數運算

上面的兩種發放如果遇到有小數點就會報錯。因此浮點數數運行就需要其他命令支持了。

1、bc命令行計算器,可以進行整數運算和浮點數運算

#!/bin/bash

echo $( echo "scale=2; 10/3" | bc)

輸出:

3.33

注釋:scale是指定精度,而且只有在除法的時候才有生效,其他都是安裝原來都有幾位就輸出幾位;bc支持除了位操作的所有運算。

2、awk運算

#!/bin/bash

a=1.1

b=3.222

echo $(awk -v a=$a -v b=$b "BEGIN")

輸出:

4.32

注釋:awk的變數跟shell的變數是獨立的,所以需要使用-v進行變數傳遞;支持輸出格式化,根據實際需要進行格式化輸出;awk內置有log、sqr、cos、sin等等函數。

總結:小數運算的時候,還是習慣使用awk,bc輸出不能根據自己的需要進行格式化。


總結

awk是一種文本處理工具,同時也是一種程序設計語言,作為一種程序設計語言。因此進行浮點數計算並需要進行判斷的時候,建議還是使用awk進行處理。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 linux運維菜 的精彩文章:

linux-RHEL/Centos都選擇了xfs文件系統

TAG:linux運維菜 |