Shell脚本之变量的数值计算

本文是自己学习的总结,仅以作分享。若有不对的地方欢迎指正。

常见的有这几个命令:(( ))letexprbc$[ ]

运算符不支持浮点数和字符串
    ++--:增加和减少,可前置也可放在结尾。变量在前则先输出变量值,变量在后则先运算后输出变量的值。如:a++,a在前面先计算a的值,再对a加1;同理a--
    +-~:一元的正号与负号;逻辑与位的取反
   */%:乘法、除法与取余数
    +-:加法与减法
   <<=>>=:比较符号
    ==!=:相等于不相等
   <<>>:向左位移和向右位移
    &^|:位的AND与位的异或、位的或
    &&||:逻辑的AND与逻辑的OR
   ?::条件表达式
    =+=-=*=/=%=&=^=<<=>>=|=:赋值运算符

 (( ))用法 
  双小括号,常用且高效用于简单的整数运算,只需要将特定的算数表达式用”$(( ” 和”))“括起。Shell的算术运算符符号都置于”$(( ” ……”))“的语法中。如同双引号功能,除了内嵌双引号无需转义。

    

 

let用法
  let赋值表达式功能等同于:(( 赋值表达式)),但效率不如(())高

    

 

expr用法
 expr一般用于整数值,也可用于字符串,用来求表达式变量的值,同时expr也是一个手工命令行计算器。
    语法expr expressionexpr $[$a + $b]($a、$b可为整数值)

        


    特殊用法
        用于判断文件扩展名:如果匹配则打印匹配字符的个数。否则打印0。

            


        判断变量是否为整数

            

 

bc的用法
      是UNIX下的计算器,也可用在命令行下。支持科学计算法,可以用于小数计算

            


      小数乘除需scale,如:echo "scale=2;6.2 / 5.1" | bc(保留小数点后2位)

            


      进制转换需obase,如:echo "obase=2;8" | bc (10进制8转换成2进制)

            


版权声明:本文为RambleHQ原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。