一、整數計算
shell中(())、let 、$ 、expr能進行整數運算。
$:
這個方法很方便。很容易使用,推薦使用
$的用法:
$[表示式]
示例:
let方法:[root@localhost shell_protest]# echo $[1+2]
3
[root@localhost shell_protest]# echo $[1*2]
2
[root@localhost shell_protest]# echo $[11/2]
5
[root@localhost shell_protest]# echo $[11-2]
9
[root@localhost shell_protest]# echo $[(1+2)*2]
6
shell let 命令的語法格式為:
let 表示式
或者
let "表示式"
或者
let '表示式'
它們都等價於((表示式))
。
當表示式中含有 shell 特殊字元(例如 |)時,需要用雙引號" "
或者單引號' '
將表示式包圍起來
let的計算結果,如果沒有變數去接受,會被丟棄掉
let和(())很相似。[root@localhost shell_protest]# let 1+1
[root@localhost shell_protest]# let a=1+1
[root@localhost shell_protest]# echo $a
2
let的缺點是不能
echo let 1+1
而(())可以實現
echo $((1+1))
let i+=8的效率據說是比((i+=8))要低[root@localhost shell_protest]# i=2
[root@localhost shell_protest]# let i+=8
[root@localhost shell_protest]# echo $i
10
let可以實現多個表示式計算[root@localhost shell_protest]# a=10
[root@localhost shell_protest]# b=34
[root@localhost shell_protest]# let a+=6 c=a+b
[root@localhost shell_protest]# echo $a $c
16 50
(())方法:
(())使用起來還是比較簡便的,不僅可以計算算術值,還可以計算邏輯值
使用方法:
示例:假如計算的結果不賦值,就直接放到(())裡面。
eg:
((a=1+3/2-1))
假如計算的結果要給外面其他變數賦值,就要加$在(())外。
eg:
a=$((1+$a%3))
關於:a++與++a++++++++++計算算術值+++++++++++++
[root@localhost shell_protest]# ((a=1+3**3-4%3))
[root@localhost shell_protest]# echo $a
27
+++++++++計算邏輯值+++++++++++++++
[root@localhost shell_protest]# ((a=(1==2)))
[root@localhost shell_protest]# echo $a
0
[root@localhost shell_protest]# ((a=(1==1)))
[root@localhost shell_protest]# echo $a
1
echo $((++a)) 和 echo $((--a))
echo $((a++)) 和 echo $((a--))
這種型別的題目和平常我們寫的其他程式是一樣的
++a是先++再輸出
a++是先輸出再++
以上的方法都只能做整數運算,如果想使用小數計算可以繼續看下面的介紹![root@localhost shell_protest]# a=1
[root@localhost shell_protest]# echo $((a++))
1
[root@localhost shell_protest]# echo $((++a))
3
二、小數計算
兩種方法:
awk 和 |bc
awk:
awk計算小數的格式:
使用方法awk示例:echo 'awk -v x=1.2 -v y=2.3 `begin`'
-v:傳值,假如有變數 可以寫成x=$a
%.3f是控制 小數需要保留幾位
bc方法:[root@localhost shell_protest]# sh xiaoshu.sh
7.35
10.5
22.05
0.00
—————————————source—————————————————————————
[root@localhost shell_protest]# cat xiaoshu.sh
echo `awk -v x=2.1 -v y=3.5 'begin'`
s=10.5
echo $s
echo `awk -v x=2.1 -v y="$s" 'begin'`
echo `awk 'begin'`
#一定要先把變數用 -v 賦值,否則awk無法計算
使用的格式:
示例:[root@localhost shell_protest]# s1=$(echo "scale=2;5/4"|bc)
scale=n n代表保留幾位小鼠
5/4是計算表示式
[root@localhost shell_protest]# s1=$(echo "scale=2;5/4"|bc)
[root@localhost shell_protest]# echo $s1
1.25
[root@localhost shell_protest]# echo $(echo "scale=3;1.1*2.3"|bc)
2.53
Shell 數值計算
開啟文字編輯器 可以使用 vi vim 命令來建立檔案 新建乙個檔案 test.sh,擴充套件名為 sh sh代表shell 副檔名並不影響指令碼執行,只是起到乙個見名知意的作用。指令碼的第一行一般是 bin bash,告訴系統其後路徑所指定的程式即是解釋此指令碼檔案的 shell 程式。預設用 v...
shell變數的數值計算
root foundation63 a 123 root foundation63 expr a 10 133 root foundation63 expr a 10 113 root foundation63 expr a 10 此命令不能識別,必須加 root foundation63 echo...
shell 變數的數值計算
變數的數值計算覺的有如下命令 let expr bc 下面看看數值計算的運算子 此法很常用且效率高,用於執行整數型的計算,不支援浮點型。如圖 root localhost a 1 2 3 4 3 root localhost echo a 8 root localhost b 1 2 3 4 3 r...