Linux基础系列文章大纲
Shell系列文章大纲
Bash数值运算
Bash内置数值运算
使用$(())
、$[]
或内置命令let
或declare -i
(以及等价的typeset命令)可以进行数值运算,它们都只能进行整数运算。
- let命令只能单独作为一个命令行运算
declare -i
声明整数类型的变量,声明后就能直接参与数值运算
$(())
和$[]
可以在命令内部进行运算,运算完成后会进行算术替换:即将运算结果替换到命令行中
例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| # 使用let n=1 let n=n+1 echo $n # 2 let n=$n+1 echo $n # 3
# 使用declare -i declare -i a b c a=10 b=100 c=a+b echo $c # 110
# 使用$(())和$[] x=10 y=20 echo $(( (x+y)*2 )) echo $[ (x+y)*2 ]
|
小数运算
Bash自身语法不支持小数运算。但如果真的需要进行精确到小数的运算,是可以借助其它命令工具,比如bc、awk、perl等等。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| # 使用awk $ echo 1.2 2.3 | awk '{print $1+$2}' 3.5 $ awk 'BEGIN{print 1.2+2.3}' 3.5
# 使用bc $ echo 1.2+2.3 | bc 3.5
# 使用perl $ perl -E 'say 1.2+2.3' 3.5 $ echo 1.2 2.3 | perl -anE 'say $F[0]+$F[1]' 3.5
|