算术扩展: $((算术式))
    使用外部程式:expr 算术式
    使用$[]: $[算术式]
    使用内置命令: declare -i 变量=算术式
    使用内置命令: let 算术式
    注意:算术式由操作数和运算符组成
        若算术式中变量不存在或为空,则该变量值为0
        算术式中若包含变量或变量扩展,算术运算之前变量会替换,扩展会展开
        若算术式中数字以0开头则视为八进制,0X开头视为十六进制
        不同进制数字可用 "进制#数字" 来表示
        算术式中有变量时该变量前最好不要加$,以免该变量不存在造成语法错误
        
赋值运算:%= , <<= (位左移), >>= (位右移), &= (位AND), ^= (位互斥), |= (位OR)

使用expr做算术运算:(注意:算术式'中含有bash shell特殊字符时需要用\转义)
    a=`expr Arg1 \| Arg2` :Arg1存在非空非0,则传回Arg1,否则传回Arg2
    a=`ecpr Arg1 \& Arg2` :Arg1和Arg2都存在非空非0,则传回Arg1,否则传回0
    算术式中运算符和操作数之间必须有有空格隔开(与declare相反)
    expr的本来作用是在“标准输出”显示表达式的值。因其为外部程序而与shell无关,可跨平台
    let 和 expr 的运算是整数运算,不包括浮点预算。
    
使用declare做算术运算:
    注:使用declare -i设定变量
        算术式中运算符和操作数之间不能有空格
        特殊符号不必使用\转义,如:*乘法,**乘方(expr中无乘方)
        算术式中可以包含其他变量且变量前不需加$
        let与declare用法大致相同
        
注意:let必须是完整的算术表达式,即有等号两边
      (())、expr 可以只有等号右边的计算,由$((...))、$(expr ...)、`expr ...` 查看返回结果




^_^