SHELL脚本的语法知识——数值计算

①$[]

  $[ $a operator $b ]

  例: a=2;b=3;

     echo $[ $a + $b]   # 5

     echo $[$a-$b]  #-3

     echo $[++$a-$b]  #0

     c=$[$a+$b]  # √ c=6

     d=$[a+b]  # 6

  备注:除了自加自减运算符其他都支持;只能进行整数运算;++在操作数前面时不会报错也不会自加;$[]会输出运算结果

②let

  let a=b+c

  例:a=1;b=2;

    let c=a+b;echo $c  # 3

    let c=++a+b;echo $c  # 4

    c=let a+b  # × let不会输出计算结果

    echo `let a+b`  # × 

  备注:几乎支持所有运算符;表达式中的变量不加$;一般情况下表达式不用加双引号,但是如果表达式中有bash关键字则需加上;只能进行整数运算;let 不会输出运算结果,赋值需要在表达式中进行;bash内建命令

③[$](( ))

  例: 

    a=3;

    ((b=a+2));echo $b  # 5

    echo ((a+5)) 或者 c=((a+3))  # -bash: syntax error near unexpected token `(‘

    echo $((a+5)) 或者 c=$((a+3));echo $c  # 8 或 6

  备注:用法与let完全相同;如果前面有$符号,则结果输出,否则结果不输出

④bc

  例:

    f=`echo 3+1|bc`;echo $f  # 4

    touch f;echo 3+4 > f;cat f |bc  # 7

  备注:支持浮点数计算;支持除位运算之外的所有运算;通过scale进行精度设置

⑤expr

  例:

    a=3;

    b=`expr $a + 3`;echo $b  # 6

  备注:需要对部分操作符进行转义;操作符与操作数之间需用空格隔开;只支持整数运算

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。