在shell中的7種數值計算方法

2021-10-04 05:10:20 字數 2029 閱讀 2325

引言

linux shell 中使用 let , [ ] ,(( )) 三種運算子操作 shell 變數進行簡單的基本運算;

linux shell 中使用 expr 與 bc 兩個程式實現高階運算;

閒話不多敘,直接上好貨!

let命令是bash中用於計算的工具,用於執行乙個或多個表示式,變數計算中不需要加上$來表示變數。如果表示式中包含了空格或其他特殊字元,則必須引起來。

[root@host]# i=1

[root@host]# let i=i+2

[root@host]# echo $i

3[root@host]# let i--

[root@host]# echo $i

2[root@host]# let i+=1

[root@host]# echo $i

3

"[ ]" 運算子裡面可以使用 $ 符號引用變數,同時支援變數名與運算子之間不帶空格。

[root@host]# i=1

[root@host]# i=$[$i+2]

[root@host]# echo $i

3

" (( )) " 運算子跟 " [ ] " 運算子一樣,裡面可以使用$符號引用變數,同時支援變數名與運算子之間不帶空格。

[root@host]# i=1

[root@host]# i=$(($i+2))

[root@host]# echo $i

3

"expr"命令支援$符號引用變數進行基本運算,但是變數與運算子之間必須使用空格作為分隔符,且表示式外部不能用引號括起來,否則被作為字串處理;

[root@host]# i=1

[root@host]#expr $1 + 2

3[root@host]#expr"$1+2"

$1+2

bc 命令是任意精度計算器語言,通常在linux下當計算器用。它類似基本的計算器, 使用這個計算器可以做基本的數**算。

常用的運算:

+ 加法

- 減法

* 乘法

/ 除法

^ 指數

% 餘數

語法

bc (選項) (引數)

選項值:

-i:強制進入互動式模式;

-l:定義使用的標準數學庫;

-w:對posix bc的擴充套件給出警告資訊;

-q:不列印正常的gnu bc環境資訊;

-v:顯示指令版本資訊;

-h:顯示指令的幫助資訊。

引數

例項

[root@host]#i=1

[root@host]# echo "$i + 3" | bc

4[root@host]#echo "scale=2; (3.156 + 4.789)"| bc

7.94

[root@host]# echo "ibase=2; 1010"|bc

10[root@host]# echo "obase=2; 10"|bc

1010

[root@host]# echo "sqrt (100)"|bc

10[root@host]# echo "10^2" |bc

100

利用awk也可以完成基本的數值運算,僅了解即可。

[root@host]# echo "2  3" |awk ''

5

利用typeset也可以完成基本的數值運算,僅了解即可。

[root@host]# typeset -i a=2 b=3

[root@host]# a=a+b

[root@host]# echo $a

5

Shell中的數值計算

bin bash echo please input number read n a expr n 100 a1 expr n a 100 b echo n a 100 10 bc c echo n a 100 b 10 bc d echo c 100 b 10 a bc echo d 1.對某個數...

單例模式在Java中的7種實現

1.懶漢模式 非執行緒安全 懶漢 非執行緒安全 author john public class singleton1 對外訪問例項的靜態方法 public static singleton1 getinstance return instance 2.懶漢模式 執行緒安全 懶漢 執行緒安全 aut...

在shell中變數的賦值有五種方法!

在shell中變數的賦值有五種 使用 read 命令,直接賦值,使用命令列引數,使用命令列的輸出結果,從檔案讀取 1.直接賦值,格式為 變數名 變數值 2.read 命令是系統內建命令,語法格式為 read 變數 1 變數 2 3.使用命令列引數賦值 命令 引數 1 引數 2 引數 3 4.利用命令...