一、整数的四则运算
创新互联建站是一家专注于网站设计制作、做网站与策划设计,南郑网站建设哪家好?创新互联建站做网站,专注于网站建设10年,网设计领域的专业建站公司;建站业务涵盖:南郑等地区。南郑做网站价格咨询:18982081108(1)使用let 表达式, 变量前不需要加'$'
let sum=num1+num2
(2)$[表达式], 变量前既可以加$, 也可以不加$
sum=$[num1 + num2] sum2=$[$num1 - 5] sum3=$[num1 + 3]
(3)$((表达式)), 变量前既可以加$, 也可以不加$
result=$(($num1 + num2 - 5))
(4)expr, 使用‘`’字符将表达式阔起来,或则使用$(expr 表达式), 操作数和操作符必须用空格分割
result=`expr $num \* 4` #乘法 * 需要转义 result2=$(expr $num / 3)
二、浮点数的四则运算
bc是一个数学运算的高级工具,使用分号作为定界符,通过stdin传递给bc。
(1)设置小数精度
通过设置scale的值,指定结果的小数位数
$ echo "scale=2;4/3" | bc $ 1.33
(2)进制转换
通过设置obase的值,将输入数字转换为obase设置的值的进制数
$ echo "obase=2;3" | bc #转换为二进制 $ 11 $ echo "obase=8;3" | bc #转换为八进制 $ 3 $ echo "obase=8;9" | bc #转换为八进制 $ 11 $ echo "obase=16;10" | bc #转换为十六进制 $ A
(3)一些高级应用
$ echo "sqrt(16)" | bc $ 4 $ echo "10 ^ 2" | bc $ 100
三、例子
#!/bin/bash num1=3 num2=5 #使用let时,变量前不需要加 $ let sum=num1+num2 echo "$num1 + $num2 = $sum" let num1++ #自增 let num2-- #自减 echo "num1=$num1, num2=$num2" let num1+=5 #复合运算 let num2-=2 echo "num1=$num1, num2=$num2" #使用 $[表达式] 进行计算 div=$[num1 / num2] echo "$num1 / $num2 = $div" sss=$[num1 + num2] echo "$num1 + $num2 = $sss" num3=$[num1 - 3] echo "num3=$num3" #使用 $((表达式)), 其中表达式中的变量可以用$,也可以不使用$ num4=$(($num1 + num2 - num3 + 4)) echo "num4=$num4" #使用 expr 进行计算, 操作数和操作符必须要空格隔开 num5=`expr $num1 + $num3` echo "num5=$num5" num6=`expr $num2+$num4` echo "num6=$num6" #由于操作数和操作符没有隔开,变成了一个字符串,并没有计算 result=`expr $num1 \* 4` #乘法 * 需要转义 echo "result=$result" result2=$(expr $num2 / 3) echo "result2=$result2" #以上都只能进行整数的计算,不能对浮点数进行操作
结果:
3 + 5 = 8
num1=4, num2=4
num1=9, num2=2
9 / 2 = 4
9 + 2 = 11
num3=6
num4=9
num5=15
num6=2+9 #这个即为操作数和操作符没有隔开的结果
result=36
result2=0
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。