发表于 2018-8-27 12:58:53

shell脚本编程之算术运算

  shell中的算术运算要求数字和运算符之间不能有空格;
  特殊符号也不需要转义;
  如果算术表达式中包含其它变量,也不需要用$引用;
  常规算术运算:
  +:加运算
  -:减运算
  *:乘运算
  /:除运算
  %:取余运算
  **:幂运算
  复合算术运算:
  +=:加等运算
  x=8;x+=2-->变量x运算结果为10
  -=:减等运算
  *=:乘等运算   #有时候乘法符号需要转义;(比如expr运算)
  /=:除等运算
  %=:余等运算
  let命令:
  let是shell内建的整数运算命令;
  (1) let var=算术表达式
  不直接显示运算结果,需要用 echo $VAR 显示结果;
  (2) var=$[]
  (3) var=$(())
  (4) var=$(expr arg1 arg2 arg3 ...)
  (5) declare –i var=数值#声明整数变量;
  (6) echo '算术表达式' | bc
  let i=2+2 -->i=4
  let j=5-2 -->j=3
  let k=2*5 -->k=10
  let L=15/7 -->L=2(整数运算)
  let m=15%7 -->m=1(取余)
  let n=2**3 -->n=8(2的3次方)
  let也支持类C的计算方式:
  let i++ 自增1
  let i-- 自减1
  let i+=10 i值等于i增加10
  let i-=10 i值等于i减少10
  let i*=10 i值等于i乘以10
  let i/=10 i值等于i除以10
  let i%=10 i值等于i模10
  增强型赋值:
  自身=自身+数字,变量做算术运算后将结果存回自身;
  i=$[$i+1] (自加1后自赋值,每执行一次数值+1)
  echo $i
  expr命令:
  整数运算,要求操作数与符号之间用空格隔开;否则直接打印出字符串;所以特殊的操作符需要转义,比如*;
  直接返回计算结果;
  #expr 1 + 1
  #expr 3 \* 10
  bc命令:
  是一种语法,为任意精度算术语言提供解释器;
  使用bc最简单的方式是直接输入bc命令,回车后进入交互式界面;
  #bc
  a=8
  b=3
  a+b
  11
  a-b
  5
  a*b
  24
  a/b
  2
  scale=3#设置显示的小数位数;
  a/b
  2.666
  默认情况下bc并不显示小数部分,必须设置要显示的小数位数;通过设置scale指定要显示的小数位数;
  bc还支持比较运算,逻辑运算;
  比较运算,真为1,假为0;
  #bc
  2>1
  1
  2
页: [1]
查看完整版本: shell脚本编程之算术运算