咖啡喝多了.估计今夜无眠了.妈蛋.
shell的算数运算.有太多了.包括很多网上可以下载到的工具.数不胜数.本文只选取常用的进行介绍.
1. $[ ] 这个可能用得比较少.包括我自己第一次见到这个一个东西的时候也很好奇.不过还真的能够达到效果.仅限于整形.不能用来计算浮点数.
缺点是计算有局限性.貌似职能计算加减乘除和模运算.
注:**表示的是幂运算.
2. $(()) 我喜欢把这个叫做C语言模式.无论是在条件判断或者循环中,还是放在这里.变量都没有限制.仅限于整形,浮点数不能用这个表达式.
3. let命令.顾名思义就是让var1=[...].之所以这样理解,是因为let的左值和右值都在let的右边.仅限于整形.浮点数不能用.
注意空格,let后面的表达式不能有空格.
4. expr命令.和let不同.左值在expr左边,右边是表达式.仅限于整形,浮点数不能用.
注意空格,expr后面的参数之间必须有空格.
希望上面的例子不会产生误导.那些运算仅仅是我所知道的.其实还可以有其它的运算,比如位运算.
以上的命令我们可以看到一个共同点,那就是不能计算浮点数,且运算能力有限.可是现实中这几个简单的功能远远不能满足我们的需求.怎么办.
当然同学们可以网上去找一个计算器,甚至带UI界面都可以.这里推荐一款super强大的计算机:bc
据说没有它完成不了的运算.不知道是不是真的.
5. bc 不同于上面的命令,它从标准输入接收表达式,然后把结果输出到标准输出.
其实对于bc我所知道的也就这么几个.很多都得靠man来查找.而取进制这个功能,貌似man都找不到.我是在网上搜很久才找到的.也就是obase和ibase,二者分别代表输出的进制和输入的进制.
bc支持条件判断,移位操作.实现了部分函数.设置可以使用for等流程控制语句.可谓博大精深啊.无奈我值掌握了皮毛.
当然linux下的计算命令远不止这些,比如还可以输入calc.会弹出字符界面进行运算.只是我仅仅积累了这几种方式.