在bash shell中,可以利用let、(( ))、執行基本的算術操作,在高階操作時,使用expr和bc兩個工具
1、let
[root@client02 ~]# no1=4
[root@client02 ~]# no2=5
[root@client02 ~]# let result=no1+no2
[root@client02 ~]# echo $result
9[root@client02 ~]# let no1++
[root@client02 ~]# echo $no1
5[root@client02 ~]# let no1+=3
[root@client02 ~]# echo $no1
8[root@client02 ~]#
2、方法
[root@client02 ~]# reslut=$[ no1 + no2 ]
[root@client02 ~]# echo $reslut
13[root@client02 ~]# reslut=$[ no1 + 2 ]
[root@client02 ~]# echo $reslut
10[root@client02 ~]#
3、(())方法
[root@client02 ~]# result=$((no1 + 6))
[root@client02 ~]# echo $no1
[root@client02 ~]# 1
1[root@client02 ~]# echo $result
7[root@client02 ~]#
4、expr方法
[root@client02 ~]# result=`expr 3 + 4`
[root@client02 ~]# echo $result
7[root@client02 ~]# result=`expr $no1 + 4`
[root@client02 ~]# echo $result
5[root@client02 ~]#
5、bc可以執行浮點操作以及一些高階函式,通過stdin傳遞給bc,其他引數可以置於要執行的具體操作之前,同時以分號作為界定符
[root@client02 ~]# echo "4.5*3" | bc
13.5
[root@client02 ~]# no=2
[root@client02 ~]# result=`echo "$no * 3.3" | bc`
[root@client02 ~]# echo $result
6.6[root@client02 ~]#
設定小數精度
[root@client02 ~]# echo "scale=2;8/3" | bc
2.66
[root@client02 ~]#
進製轉換
[root@client02 ~]# no=100
[root@client02 ~]# echo "obase=2;$no"|bc
1100100
[root@client02 ~]# no=10001010
[root@client02 ~]# echo "obase=10;ibase=2;$no"|bc
138[root@client02 ~]# no=123ab
[root@client02 ~]# echo "obase=10;ibase=16;$no"|bc
74667
[root@client02 ~]#
計算平方和平方根
[root@client02 ~]# echo "sqrt(100)"|bc
10[root@client02 ~]# echo "3^3"|bc
27[root@client02 ~]#
shell數值運算
原文 1 錯誤方法舉例 a var 1 1 echo var 輸出的結果是1 1,悲劇,呵呵 b var 1 var var 1 echo var 輸出結果是1 1,依然悲劇,呵呵 2 正確方法 1 使用let var 1 let var 1 echo var 輸出結果為2,這次沒有悲劇 注意 a ...
shell 2 數值運算
1 expr 用法比較麻煩很少使用。示例 jamin localhost expr 1 2 3 號兩邊必須有空格 jamin localhost expr 3 2 6 號是特殊字元。2 使用 示例 jamin localhost echo 1 2 3 jamin localhost echo 3 2...
Shell中的數值運算
問題 本案例要求熟悉linux shell環境的特點,主要練習以下操作 使用expr let等整數運算工具 定義變數x 1234,然後計算x與78的四則運算及求模結果 使用bc實現小數運算操作 以互動方式計算12.34與56.78的四則運算結果,另外再以非互動方式重複上述計算,最多顯示4位小數 步驟...